MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
インストール - Composerのソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
インストール - Composer
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == Composerは、PHP向けの依存関係管理ツールとして広く使われているツールである。<br> 主に、PHPのライブラリやパッケージを効率的に管理することができる。<br> <br> プロジェクトで必要なパッケージの依存関係をcomposer.jsonファイルに記述する。<br> このファイルには、プロジェクトが必要とするパッケージとそのバージョンが定義される。<br> <br> <syntaxhighlight lang="json"> { "require": { "monolog/monolog": "^2.0", "symfony/http-foundation": "^5.4" } } </syntaxhighlight> <br> パッケージをインストールする場合は、<code>composer install</code>コマンドを実行するだけで、Composerは自動的に必要なパッケージをダウンロードして、vendorディレクトリに配置する。<br> また、依存関係の解決も自動的に行われる。<br> <br> 重要な点として、オートローディング機能がある。<br> Composerは、PSR-4やPSR-0等の標準的なオートローディング規約に従い、クラスファイルを自動的に読み込む仕組みを提供する。<br> これにより、require文やinclude文を手動で記述する必要がない。<br> <br> パッケージを更新する場合は、<code>composer update</code>コマンドを使用することにより、既存のパッケージを最新バージョンに更新できる。<br> また、composer.lockファイルにより、チーム内で同じバージョンのパッケージを使用することが保証される。<br> <br> パッケージの検索は、Packagistという公式リポジトリを通じて行うことができる。<br> ここには、数多くのオープンソースパッケージが登録されており、必要な機能を持つパッケージを見つけることができる。<br> * https://packagist.org/ <br> また、プライベートリポジトリの設定も可能で、社内専用のパッケージを管理することもできる。<br> VCSリポジトリや、独自のパッケージリポジトリサーバを指定することができる。<br> <br> セキュリティ面では、パッケージの脆弱性をチェックする機能も提供されている。<br> <code>composer audit</code>コマンドを使用することにより、インストールされているパッケージの既知の脆弱性を確認できる。<br> <br> Composerの使用は現代のPHP開発では標準的な方法となっており、効率的な開発とコードの保守性向上に大きく貢献する。<br> <br><br> == Composerのインストール == 以下に、Composerの公式Webサイトを示す。<br> https://getcomposer.org/download<br> <br> Composerのインストーラをダウンロードする。<br> php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" <br> インストーラのSHA-384を確認する。<br> php -r "if (hash_file('sha384', 'composer-setup.php') === '55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae') \ { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" <br> Composerをインストールする。<br> composer.pharファイルが生成される。<br> php composer-setup.php --install-dir=<Composerのインストールディレクトリ> <br> composer.pharファイルのシンボリックリンクを作成する。<br> ln -s composer.phar composer <br> .profileファイル等に、Composerのインストールディレクトリを環境変数<code>PATH</code>に追加する。<br> vi ~/.profile <br> ~/.profileファイル export PATH="/<Composerのインストールディレクトリ>:$PATH" <br> また、Composerをアンインストールする場合は、以下のコマンドを実行する。<br> php -r "unlink('composer-setup.php');" <br><br> == composer.jsonの作成 == プロジェクトのトップディレクトリ等にcomposer.jsonを作成する。<br> <br> 以下の例は、php-imap/php-imapライブラリに依存するプロジェクトである。<br> <syntaxhighlight lang="json"> { "require": { "php-imap/php-imap": "^3.0" } } </syntaxhighlight> <br> <u>※注意</u><br> <u>vendorディレクトリは、Git等のバージョン管理システムから除外するのが一般的である。</u><br> <u>composer.jsonとcomposer.lockは必ずバージョン管理に含める必要がある。</u><br> <br><br> == 依存パッケージのインストール == composer.jsonが存在するディレクトリ (プロジェクトのトップディレクトリ等) に移動して、依存パッケージをインストールする。<br> # 開発環境 composer install # 本番環境 composer install --no-dev <br><br> == オートローディング == ==== autoload.php ==== autoload.phpは、クラスの自動読み込み (オートローディング) を設定するファイルである。<br> これは、必要なクラスファイルを自動的にrequire / includeするものである。<br> <br> これにより、手動でrequire文やinclude文を記述する必要がない。<br> <br> ==== オートローディングのメリット ==== * 可読性が上がる。 (require文が減る) * 名前空間の管理が容易になる。 * 依存関係の管理が自動化される。 * バージョン管理が容易になる。 <br> ==== オートローディングの仕組み ==== <syntaxhighlight lang="php"> // 従来の方法 (手動で読み込む) require_once 'PhpImap/Mailbox.php'; require_once 'PhpImap/Exceptions/ConnectionException.php'; require_once 'PhpImap/Exceptions/InvalidParameterException.php'; // Composerを使用した方法 (自動で読み込まれる) require 'vendor/autoload.php'; use PhpImap\Mailbox; use PhpImap\Exceptions\ConnectionException; </syntaxhighlight> <br> ==== autoload.phpの生成 ==== * composer.jsonの設定例 <syntaxhighlight lang="php"> { "autoload": { "psr-4": { "<任意の名前空間名 1>\\": "src/", "<任意の名前空間名 2>\\": "lib/", "App\\": "app/", "Database\\Factories\\": "database/factories/", "Database\\Seeders\\": "database/seeders/", "Tests\\": "tests/" }, "files": [ "src/helpers.php" ], "classmap": [ "legacy/classes" ] } } </syntaxhighlight> <br> * autoloadセクション *: Composerのオートローディング設定を定義する部分である。 *: クラスの自動読み込みルールを指定する。 *: <br> * psr-4 *: PHP-FIGが定めたPSR-4オートローディング規約に従うことを示す。 *: モダンなPHPの標準的な命名規則とファイル構造を定義する。 *: 名前空間とディレクトリ構造を1:1で対応させる方式。 *: <br> ** PSR-4の命名規則 **: ファイル名はクラス名と完全に一致する必要がある。 **: ディレクトリ構造は、名前空間の構造と一致する必要がある。 **: 大文字小文字を厳密に区別される。 **: <br> ** "<任意の名前空間名>\\" **: プロジェクトのルート名前空間を指定する。 **: バックスラッシュを2つ記述するのは、JSONのエスケープルール上の要件である。 **: 実際のPHPコードでは、<u><任意の名前空間名\ 例: YourNamespace\></u>として解釈される。 **: <br> **: 名前空間は一般的に企業名やプロジェクト名が使用される。 *: <br> * "src/" *: 指定した名前空間に対応するディレクトリパスを記述する。 *: これは、プロジェクトのルートディレクトリからの相対パスである。 *: <br> * files *: 常に読み込むファイルを指定する。 *: <br> * classmap *: PSR-4に従わない古いコードのための設定する。 <br> オートローダーを生成および更新する。<br> また、composer.jsonを変更した場合は、必ず、composer dump-autoloadコマンドの実行が必要となる。<br> # 開発環境 composer dump-autoload # 本番環境では最適化のため composer dump-autoload -o を使用する composer dump-autoload -o <br> ==== autoload.phpの使用例 ==== # プロジェクト構造例 my-project/ ├── composer.json ├── src/ │ ├── Controller/ │ │ └── UserController.php │ ├── Model/ │ │ └── User.php │ └── Service/ │ └── UserService.php └── vendor/ <br> <syntaxhighlight lang="php"> // src/Controller/UserController.php namespace YourNamespace\Controller; class UserController { // クラスの実装 } </syntaxhighlight> <br> <syntaxhighlight lang="php"> // src/Model/User.php namespace YourNamespace\Model; class User { // クラスの実装 } </syntaxhighlight> <br> <syntaxhighlight lang="php"> // src/Service/UserService.php namespace YourNamespace\Service; class UserService { // クラスの実装 } </syntaxhighlight> <br> <syntaxhighlight lang="php"> // 使用例 use YourNamespace\Controller\UserController; use YourNamespace\Model\User; use YourNamespace\Service\UserService; $controller = new UserController(); $user = new User(); $service = new UserService(); </syntaxhighlight> <br><br> {{#seo: |title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki |keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,Podman,電気回路,電子回路,基板,プリント基板 |description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux |image=/resources/assets/MochiuLogo_Single_Blue.png }} __FORCETOC__ [[カテゴリ:Web]]
インストール - Composer
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse