PHP関連のことを調べてみた2022年09月01日

PHP関連のことを調べてみた2022年09月01日
目次

Composerについて(概要からインストール方法まで)

# Composerとは
PHP向けのソフトウェアパッケージ・ライブラリの依存関係を管理する、パッケージ管理システム

## そもそもパッケージて何
システム開発を行う際に、便利な仕組みや関数をまとめたもの
標準のphpのみでの開発は難しいので、大体パッケージを利用しているのが常

もしパッケージがなければ、ここに書かれている内容を全て開発者自身が書かなければいけないので、
私たちは常にパッケージの恩赦を受けながら開発していると言っても過言ではない

Composerはこのようなパッケージを管理するためのツール

## Composerのメリットて何

##### ・使用しているパッケージをファイルで管理できる
「パッケージ管理」なので、上記で説明したパッケージをファイルで管理できる
パッケージを取得したあとに、パッケージにバグや脆弱性が発覚し作成者がパッケージを更新することがある

手動でダウンロードしてきたパッケージだと、定期的にアップデート情報を確認して、
再ダウンロードするという作業が必要になるが、Composerで取得したものであるなら、updateコマンドを実行するだけで、

元記事を表示

laravelでのcomposerとは何か?

1、composerとは何か?
laravelにおいて使用可能な便利なフレームワークやライブラリを管理するシステムです。
composerがあることで、例えばAというライブラリをダウンロードする際に他に必要なライブラリも自動的にダウンロードしてくれるようになります。
(詳細:https://qiita.com/niisan-tokyo/items/8cccec88d45f38171c94)

2、laravelでcomposerが関連しているファイル・フォルダ

composer.json
インストールするパッケージ一覧を表示するファイル

composer.lock
実際にインストールされたパッケージの具体的なバージョンなどの情報が自動的に記録されるファイル

vendor
インストールしたパッケージのソース本体が格納されたディレクトリ

composer.phar
composerの実行ファイル。
このファイルをもとにしてcomposerのコマンドが実行される。
そもそも拡張子.pharのファイルはphpのアーカイブファイル(複数のファイルやフォルダをまとめたファイル)のこと。

元記事を表示

artisan したら PHP Parse error: syntax error, unexpected token “)” と Class “DOMDocument” not found が出た

Laravel のプロジェクトを人任せにしていたが自分の所でも開発をしなければならなくなったので、マイグレーションを作りたく artisan を使ってみたが、

“`shell
$ php artisan make:migration add_hoge_to_fugas –table=fugas
PHP Parse error: syntax error, unexpected token “)” in /home/test/projects/hogehoge-system/vendor/symfony/console/SignalRegistry/SignalRegistry.php on line 37
“`

こんなエラーが出ますね。これは PHP のバージョンじゃなかろうか。WSL2 にはいってるのは

“`shell
$ php -version
PHP 8.0.17 (cli) (built: Mar 20 2022 17:04:09) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.17, Copyr

元記事を表示

Laravel 複数ページで共通データをフロント側に渡す方法

# 今回やりたいこと
– Laravelで色んなページでよく使うデータをController毎にデータ定義して、フロント側に返すのではなく、共通でサーバ側からフロントへ渡せるようにしたい。

# どうやって実現するのか
– **Laravel view composer**(**ビューコンポーザ**)というもので、下記公式ドキュメントの引用文を読むと実現できそうなので使ってみる。

> ビューコンポーザは、ビューをレンダーするときに呼び出すコールバックまたはクラスメソッドです。
ビューをレンダーするたびにビューへ結合するデータがある場合、ビューコンポーザを使用すると、そのロジックを1つの場所に集約できます。
ビューコンポーザは、アプリケーション内の複数のルートかコントローラが同じビューを返し、常に特定のデータが必要な場合にきわめて役立ちます。

# やってみる

## おおまかな実装の流れ
1. サービスプロバイダファイルの作成
2. `app.php`へSeriviceProviderの登録
3. ●●Composerクラスを作成
4. SeriviceProviderへの設定追加

元記事を表示

Python,Ruby,PHP,Java,JavaScript,Perlの関数定義の比較 (メソッド定義・サブルーチン定義なども)

Qiita > プログラミング言語の比較

Python,Ruby,PHP,Java,JavaScript,Perlの関数定義の比較 (メソッド定義・サブルーチン定義なども)

# Python

https://qiita.com/simonritchie/items/0f7b3768031dda834907

# Ruby

https://qiita.com/shizen-shin/items/dd41d1f0176a5e764f9f

# PHP

https://qiita.com/miriwo/items/a33688165a5f36ea8e76

# Java

https://qiita.com/takahirocook/items/5bfe43576d87a2a4006c

# JavaScript

https://qiita.com/tomcky/items/988fc5f56d019e9dc097

# Perl

ht

元記事を表示

CakePHP4でDebugKitツールバーが404エラーになる解決法

# はじめに

CakePHP 4.4.3 にアップデートしたところ、いつの間にか DebugKit toolbar が表示されなくなっていました

– GET:
– 404 Not Found

表示するように対応します

![cakephp_debug_kit_404.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/586387/62e0a665-684f-d1c5-0a68-1ff859cc4938.png)

# 結論

:::note info
routes.php に DebugKit の指定すれば OK
:::

“`php
return static function (RouteBuilder $routes) {
$routes->scope(‘/’, function (RouteBuilder $builder) {

元記事を表示

Laravel/PHPに使えるライブラリを自己学習的にまとめてみた

# Carbon
言わずと知れたPHPで日付を扱うためのライブラリ

インストールは以下のコマンドでcomposerから行う
`composer require nesbot/carbon`

インスタンスを生成して直感的なコードで日付の計算ができる

“`php:例
$date = new Carbon(); // 2021-08-31

// 週末かどうか
echo $date->isWeekend();

// 金曜かどうか
echo $date->isFriday());

// 日付が何日間開いているか
$dateMay = new Carbon(‘2021-05-01’);
$dateMay->diffInDays($date);
“`

# L5 Repository
リポジトリクラスを自前で用意しなくても
このライブラリを使えば共通化されたリポジトリからスタートできる。
5.5以上ならサポートされているらしい。

インストールは以下のコマンドでcomposerから行う
`composer require prettus/l5-repository`

[Githu

元記事を表示

Apache+PHP7.4+MariaDB接続

# 概要
今日はPHPからMariaDBへ接続し、該当テーブルからデータを取得して画面へ表示するサンプルを書いてみます。
画面側に表示するのはSmartyテンプレートエンジンを利用します。

# 開発環境
Raspberry PIにApacheとPHPがインストールされている前提です。
今回使うバージョンは以下の通りです。

※環境構築については以下のサイトを参照してください。

https://qiita.com/neomi/items/8f7422b3fc183546586d

~~~bash
# Apacheのバージョン確認です。
pi@raspberrypi:~ $ apachectl -v
Server version: Apache/2.4.54 (Raspbian)
Server built: 2022-06-09T04:26:43

# PHPのバージョン確認です。
pi@raspberrypi:~ $ php -v
PHP 7.4.30 (cli) (built: Jul 7 2022 15:51:43) ( NTS )
Copyright (c) The PH

元記事を表示

laravelのORMを使うときにDBのtimestampを保存する方法

こんにちは。[virapture株式会社](https://virapture.com)でCEOしながら[ラグナロク株式会社](https://ragna-rock.com)でもCKOとして働いている[@mogmet](https://twitter.com/mogmet)です。

最後に、[ワンナイト人狼オンライン](https://online.1nite-jinro.com/link/blog)というゲームを作ってます!よかったら遊んでね!

最近忙しぎて全然更新できてないのでさらっとトラブルシューティングメモを残します。

今回はlaravelでMySQLのcreate/updateなどをするときに、DBサーバ側ののtimestampをレコードに保存する方法を紹介します。

## 結論

結論から言うと答えはここにありました。

https://zenn.dev/ad5/articles/5583b0e65b9d2140306b

そして答えのコード。

“`php
$attributes[‘updated_at’] = DB::raw(‘CURRENT_TIMESTAMP’

元記事を表示

WordPress 6.0でカスタムフィールドを表示させる方法

ググってもなかなか見つかりづらかったので情報共有しておく.

![投稿画面](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2544442/3a08141d-579e-6636-c6f7-a2f27c24bfc0.png)

上記のように投稿画面にいき,右上のオプションボタン(点が3つ並んでいるところ)をクリックして,下の設定ボタンを押す.

![設定画面](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2544442/24a2a2b3-97ca-58e9-48e1-8a28fa5e38d2.png)

設定画面の「パネル」タブへいき,一番下の「カスタムフィールド」のボタンをオンにする.

![カスタムフィールド](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2544442/f97c9245-a26f-f58d-8172-f87679082f7a.png)

投稿画

元記事を表示

ホームページのバナーはバニラのjsよりslick.jsを使った方が早いかつ品質が良い話(2)

前回はこちらにご参照ください。
https://qiita.com/u9908028/items/e666237c854e15a84103
目標は、既存のバナーをカドカワ様の公式ページのようなバナーに改造することです。

バナーの特性と目標

見た目は似てきたものの、マウス動作による反応、バナーの最後尾から最初の画像に移動する際のニメーションなどは自作のバニラjavascriptバナーでは作れませんでした。

カドカワ様のバナーは下記の幾つの特性があります。

  1. 定期的に画像を左に移動する(以下、定期的移動と呼称します)
  2. マウスが画像の上にいるとき、定期的移動が停止
  3. マウスが「点」を押したら、対応する画像に移動した後、定期的に移動しない
  4. 左右の矢印を
元記事を表示

phpにおけるinterfaceをシンプルに説明してみた

1、interfaceとは?
phpにおけるinterfaceは一言で言うと、「各クラスで必要なメソッドを定めたクラス」です。
interfaceという英単語の意味が、「何かと何かを繋いだ境界線」のようなニュアンスです。
そのためオブジェクト指向におけるinterfaceは「クラス」と「クラス」の間をつなげる「約束事(ルール)」という意味で理解できるかと思います。
interfaceを使用することで、必要なメソッドがきちんと定義されていることを確認することが可能です。

2、interfaceの使い方

“`

元記事を表示

【laravel】スタティックメソッドでクラスを呼び出したのにコンストラクタを通ってる!!

みなさんもこんな経験ないですか?
私はあります。

例えばこんな感じです

“`
app/Model/

class UserMoel extends Model
{
$table = ‘user’;

$a = null;

public __construct()
{
$this->a = ‘かめはめ波’;
}

public static function getUser($userId)
{
$user = self::query()->where(‘user_id’, $userId)->first();
dd($this->a);

return $user;
}

———————————–

Http/Controller

class user extends Controller
{
public function login()
{
$user = UserModel::getUser(2)
}
}

//出力
かめはめ波
“`

元記事を表示

array_columnまとめ

# はじめに
業務でarray_columnを使用し、めちゃくちゃ便利な関数で今後も多く使用するだろうと思いまとめてみました。
自分の振り返りのため、皆さんの参考になれば何よりです。

## 第一引数に配列、第二引数に取り出す要素のキー名を指定するパターン
下記の例だと、idだけの配列が作成されます。
“`php
1, ‘name’ => ‘joy’, ‘hoby’ => ‘soccer’],
[‘id’ => 2, ‘name’ => ‘mike’, ‘hoby’ => ‘baseball’],
[‘id’ => 3, ‘name’ => ‘taro’, ‘hoby’ => ‘tennis’],
[‘id’ => 4, ‘name’ => ‘hana’, ‘hoby’ => ‘tabletennis’],
[‘id’ => 5, ‘name’ => ‘kim’, ‘hoby’ => ‘basketball’]
];

var_export(array_column($arr, ‘id’));

元記事を表示

Python,Ruby,PHP,Java,JavaScript,Perlのプログラミング言語の比較

Qiita > プログラミング言語の比較

Python,Ruby,PHP,Java,JavaScript,Perlのプログラミング言語の比較です。

# 2022年版

## 人気の比較記事

https://qiita.com/yuki_kimoto/items/192d162c73b584fc72b9

## 基本文法

https://qiita.com/yuki_kimoto/items/a11a1095fc24be590fce

## 入門

https://qiita.com/yuki_kimoto/items/00aaab90f31194a5de74

## インストール

https://qiita.com/yuki_kimoto/items/7c2f1be70d68065338a4

## 変数

https://qiita.com/yuki_kimoto/items/631537a6e7eb58f251cf

## 文字列処

元記事を表示

Python,Ruby,PHP,Java,JavaScript,Perlの多次元データ構造の比較

Qiita > プログラミング言語の比較

Python,Ruby,PHP,Java,JavaScript,Perlの多次元データ構造の比較

# Python

https://qiita.com/ko0821/items/4c8a557ec88f2a10bd55

# Ruby

https://qiita.com/vzvu3k6k/items/1705c7f4b29c08787ea0

# PHP

https://qiita.com/shuntaro_tamura/items/784cfd61f355516dfff0

# Java

https://qiita.com/panda-chibi/items/e57799c047be69fe5b79

# JavaScript

https://qiita.com/Stack_up_Rising/items/cb71842d7c3510daf9f0

# Perl

https://per

元記事を表示

php-alpine 3.16でiconvを利用する

# はじめに
alpine3.13から3.16にアップデートする際にハマったので備忘録を作成。

alpine3.13ではiconvに不具合がありソースからインストールしていた。
https://blog.bagooon.com/?p=1516

“`
RUN apk add –no-cache –virtual .build-deps \
make \
gcc \
g++ \
&& curl -SL http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.15.tar.gz | tar -xz -C ~/ \
&& rm /usr/bin/iconv \
&& mv ~/libiconv-1.15 ~/libiconv \
&& ~/libiconv/configure –prefix=/usr/bin \
&& make \
&& make install \
&& rm -Rf ~/libiconv \
&& apk del

元記事を表示

【Laravel】Controllerのコンストラクタではuserが取れない

# ユーザーが取れない!

“`php:HogeController.php
public function __construct()
{
$user = Auth::user(); // $userがnull
}
“`

コントローラのコンストラクタでユーザーを取ってこようとするとnullが帰ってきます。これはmiddlewareをまだ通っていないからだそうです。

これを回避するには[コントローラミドルウェア](https://readouble.com/laravel/8.x/ja/controllers.html#:~:text=%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%9E%E3%82%A4%E3%82%BA%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%80%82-,%E3%82%B3%E3%83%B3%E3%83%88%E3%83%AD%E3%83%BC%E3%83%A9%E3%83%9F%E3%83%89%E3%83%AB%E3%82%A6%E3%82%A7%E3%82%A2,-%E3%83%9F

元記事を表示

依存パッケージが古いけど最新の依存パッケージに依存しているパッケージをcomposerで管理したい

(タイトルがややこしくてすみません)

Packagistに公開されているライブラリ(以下somepackage)をインストールしようとしたところ、既存のライブラリ(以下requiredpackage)に依存しており、そのバージョンが古いために以下somepackageの最新バージョンを入れることができないということがありました。
requiredpackageは既に複数のファイルで使用しており、バージョンアップがすぐにはできない状況でした。

そこでsomepackageをサブモジュール化して、別の`composer.json`で管理するという戦略を取ったのでその内容を紹介します。

#### 環境
“`
# composer -V
Composer version 1.10.22 2021-04-27 13:10:45

# php -v
PHP 7.4.7 (cli) (built: Jun 11 2020 18:41:17) ( NTS )

# php artisan –version
Laravel Framework 6.18.35
“`

#### 状況の整理
s

元記事を表示

Python,Ruby,PHP,Java,JavaScript,Perlの連想配列の比較

Qiita > プログラミング言語の比較

Python,Ruby,PHP,Java,JavaScript,Perlの連想配列の比較

# Python

https://qiita.com/hz1_d/items/407dd13f90a8a4533d23

# Ruby

https://qiita.com/ryouya3948/items/5ea2049abfd92eb1ded7

# PHP

https://qiita.com/shizen-shin/items/8383e27c7cf16c0ccb4a

# Java

https://qiita.com/taropon_wwwww/items/95477174ac16287c9744

# JavaScript

https://qiita.com/yrn03m/items/87e223acc6e733b50429

# Perl

https://perlzemi.com/blog/

元記事を表示

OTHERカテゴリの最新記事