composerとは
PHPのライブラリを管理するツールです。
これを使うことによって別のファイルを読み込む時にオートロード(自動クラス読み込み)
してくれる便利なツールです。
詳しい説明は下の記事にあります。
https://qiita.com/atwata/items/d6f1cf95ce96ebe58010
composerの導入
composerは公式サイトからダウンロードができます。
Macの場合は
$ brew install composer
でインストールできます。とは言っても公式サイトは見る習慣は大事だと思います。
下の写真は2022/4/22現在
上記のコマンドを実行した後に、lsコマンドでターミナルで確認すると、
composer.phar
があると思います。
composerのバージョンを確認します。
$ composer --version
でバージョンを確認できます。これでcomposerが導入されました。
確認できたらこのコマンドを使います。
$ sudo mv composer.phar /usr/local/bin/composer
パスワードが聞かれますが、これはPCのパスワードです。
MAMPはすでに導入されていること前提で話します。
$ cd /Applications/MAMP/htdocs
でhtdocsに入った後、ディレクトリを作成し移動します。
$ mkdir composer_test
$ cd composer_test
次にcomposer.jsonファイルを作成します。
composer_test$ composer init
でエンターとyesをおし続けます。
わからなければcomposer initを下のサイトから調べてください。
https://www.webdesignleaves.com/pr/php/php_composer.php
するとcomposer.jsonのファイルができます。
{
"name": "省略/composer_test",
"autoload": {
"psr-4": {
"省略\\ComposerTest\\": "src/"
}
},
"authors": [
{
"name": "省略",
"email": "省略"
}
],
"require": {}
}
省略には自分の名前やメールアドレスが入ります。
この後オートロードするために書き換えます。
{
"autoload":{
"psr-4": {
"App\\" : "app/"
}
}
}
composer_test $ composer install
composerがインストールされVScodeを見てみると変化していると思います。
autoloadのファイルなどがあると思います。
composerの内容を更新する時は
$ composer update
$ composer dump-autoload
で更新がかかったりします。
⚫︎公式サイト
名前空間(namespace)
名前空間(namespace)
とはここからここまでが名前の空間に属していると定めます。
なぜこれが必要かというと、同じ関数名をPHPでは使うことができないからです。
他にもクラスやインターフェースも利用できないみたいです。
空間が違えば、同じ関数名を定義して使うことができるので名前空間を使います。
namespaceの使い方
<?php
namespace 名前空間名;
で定義することができます。
useの使い方
useとは名前空間の拡張機能でクラスや関数などをインポートする時に使います。
use [名前空間または一部・クラス・関数など] as 別名称
名前空間を使う
実際に名前空間を使って出力させました。
<?php
namespace App\Models;
class Training_Model
{
private $text = "PHPの学習"; //変数
public function getStudy(){
return $this->text;
}
}
<?php
namespace App\Controllers;//Appのコントローラーの名前空間
use App\Models\Training_Model; //useを使う Training_Modelインポートする
class Training_Controller
{
public function run(){
$model = new Training_Model;//インスタンス化
echo $model->getStudy();
}
}
<?php
require_once __DIR__ . "/vendor/autoload.php";
//読み込み //__DIR__そのファイルの存在するディレクトリのこと
//venderフォルダの中のautoload.php
use App\Controllers\Training_Controller;
//TestController読み込み
$app = new Training_Controller;
$app->run();
//PHPの学習 と出力
composerのライブラリ
composerを使う上でライブラリを使います。
その中でCarbon
という日付を操作するライブラリがあります。
$ composer require nesbot/carbon
でインストールできます。
{
"autoload":{PHPの学習2022-04-12 09:22:01
"psr-4": {
"App\\" : "app/"
}
},
"require": { //追加
"nesbot/carbon": "^2.57"
}
}
requireの部分が追加されます。
日付指定です。これはイギリスの時間です。
use Carbon\Carbon;
echo Carbon::now();
//2022-04-12 09:22:01
日本の東京にするなら
use Carbon\Carbon;
echo Carbon::now("Asia/Tokyo");
//2022-04-12 18:25:20
になります。
use Carbon\Carbon;
echo Carbon::create(2022, 4, 22, 10, 20, 30);
//日付作成
資料