ホームページ バックエンド開発 PHPチュートリアル Composer による PHP パッケージの管理方法

Composer による PHP パッケージの管理方法

Jun 20, 2016 pm 01:01 PM
php

PHP パッケージ管理の観点から見ると、PHP の開発は非常に遅く、その結果、PEAR のようなツールを使用するプログラマーはほとんどいません。代わりに、ほとんどの開発者は、DB インタラクション、ORIM、Oauth、Amazon S3 統合など、コードを処理するための独自のお気に入りのフレームワークを選択します。欠点は、フレームワークを切り替える (またはフレームワークの使用に戻る) ことが悪夢のように感じられることです。新しいツールを使用するにはすべてを学び直す必要があり、それは簡単ではないからです。 Composer は、これらの問題の解決を支援します。
はじめに
Composer は、自らを「すべてのプロジェクトのグルー メーター」として位置づけることで問題の解決に乗り出しました。これは、他の開発者がアプリケーションに簡単にプラグインできる形式でパッケージを作成、開発、共有できることを意味します。

この記事では、Composer パッケージのインストール方法と使用方法について説明します。記事の最後では、コード ブロックを任意のフレームワークに挿入して体験することができます。CodeIgniter、FuelPHP、Laravel、Symfony2、Lithium、Yii、Zend などを使用できます。
インストール
Composer は 2 つの論理部分で構成されます。1 つはパッケージの保存に使用され、もう 1 つはコードの検出、ダウンロード、更新、共有を支援するコマンド ライン アプリケーションです。

$ cd/path/to/my/project  
$ curl -s http://getcomposer.org/installer| php 
ログイン後にコピー


プロジェクト リストには、すべての論理コード ライン ツールを含むcomposer.phar ファイルがあります。次のコードを実行すると、インストールが成功したかどうかを確認できます。

$ php composer.phar 
ログイン後にコピー


このコマンドを実行すると、使用可能なすべてのコマンドが表示されます。
個人的には、次のコマンドを使用することをお勧めします:

$ sudo mv composer.phar /usr/bin/composer 
ログイン後にコピー


このファイルを bin ディレクトリに移動すると、コマンドを簡素化できます。

$ composer about 
ログイン後にコピー


Windows で実行している場合は、このファイルをダウンロードし、PHP パーサー経由でどこにでもインストールできます。
コンポーザー.json ファイルを解析します
Ruby プログラマーであれば、このファイルは Gemfile ファイルに非常に似ていると感じるでしょう。また、Node プログラマーであれば、このファイルは package.json ファイルに非常に似ていると感じるでしょう。同様に、Composer は、composer.json ファイルを使用して、アプリケーションのニーズに基づいて設定とパッケージ化を指定します。
ほとんどの基本的な形式では、コンポーザー ファイルは次のようになります:

{  
    "require": {  
       "kriswallsmith/assetic": "*"  
    }  
} 
ログイン後にコピー


これは、「kriswallsmith」によって作成され、指定されたバージョンの「assetic」パッケージが必要であることを意味します。代わりに次のコマンドを使用して、特定のバージョンを指定することもできます:
"kriswallsmith/assetic": "1.0.3"
次のメソッドを使用することもできます:
"kriswallsmith/assetic": "1.0.*"
これには若干の変更が加えられていますが、1.1.0 にはアップグレードされません。プログラマーはインターフェイスの微妙な変更に注意する必要があります。
インストール要件
これで、composer.json ファイルの下に 1 つ以上のパッケージが存在し、この時点で実行できるようになります:
$ phpコンポーザー.pharインストール
あるいは、私のアドバイスに従えば、Unix マシン上で実行するだけです:
$コンポーザーインストール
ファイルがダウンロードされ、アプリケーションのルート ディレクトリの下のベンダー フォルダーに配置されることがわかります。このロジックでは、次の構成も使用できます:

{  
   "require": {  
       "kriswallsmith/assetic": "1.0.*"  
    },  
    "config" : {  
        "vendor-dir" : "packages"  
    }  
} 
ログイン後にコピー


オートロード
PHP ではオートローディングは少し面倒なので、開発者は独自の方法でオートローディングを行う必要があります。たとえば、Smarty パッケージは独自の自動読み込みを使用します。開発者によっては、複数のクラスを 1 つのファイルに入れたり、ファイル名を小文字にしたりすることがあります。このようなやり方はカジュアルすぎます。

公式 PHP コミュニティは、これらの恣意的な慣行を標準化するために PSR-0 標準を作成しました。 Composer はデフォルトでこの標準をサポートします。 Composer には PSR-0 自動読み込みメカニズムが付属しています。次のコード行をプロジェクトに追加します。 include_once './vendor/autoload.php'; 当然のことながら、autoload.php ファイルのディレクトリが変更された場合は、コードにも対応する変更を加える必要があります。
以下では、アプリケーションで次のコードを使用できます:

<?php   
use Assetic\Asset\AssetCollection;  
use Assetic\Asset\FileAsset;  
use Assetic\Asset\GlobAsset;  
$js = new AssetCollection(array(  
   new GlobAsset('/path/to/js/*'),  
    new FileAsset('/path/to/another.js'),  
));  
  
// the code is merged when the asset is dumped  
echo $js->dump();  
ログイン後にコピー
これは Assetic を使用した例です。もちろん、ここには多くの名前空間コードがありますが、これはパッケージ間の競合を避けるために行われます。

PSR-0 の命名規則の本質は次のとおりです:
                                                                                              次の例は Buzz HTTP パッケージです:

$browser = new Buzz\Browser;  
$response = $browser->get('http://www.google.com');  
echo $browser->getLastRequest()."\n";  
echo $response;  
ログイン後にコピー


看起来像是被美化的file_get_contents(),但是它处理所有类型的智能逻辑,并且在后台处理HTTP Response/Request,你也会发现命名空间语法也不是那么的强烈。
真实的世界
目前,大多数PHP存储依靠主代码库。如果你使用Facebook SDK,例如,你仅仅从GitHub或者zip文件中通过复制粘贴的方式把版本推到你的代码中,然后把它放到你的版本控制系统里面,将会变更。
版本和你的代码只是作为静态文件放在里面,在某种意义上,你可能会忘记升级,如果你关注到Facebook已经发布了一个新版本。最新版本文件会显示在最上面。
使用Composer就无需关注版本变化情况,你只需运行一下更新,那么所有需要更新的都会自动更新。但是为什么还会有大量的代码在你的仓库里呢?你不需要它们在那里吗?
最干脆的做法是添加vendors到你的“Ignore”列表里面(例如gitignore)并且让你的代码完全离开那里。当你在部署代码的时候,你只需运行composer install或者composer update。
如果你想使用更熟练,你可以手动运行整个过程,如果你有云端托管你可以设置hooks,一旦代码发布,就运行。
总结
将来,你将会看到更多的Composer,各种丰富多彩的框架已经开始提供了多种层次的集成。FuelPHP将构建Composer包,CodeIgniter提供自动加载并且已经在Symfony2上广泛使用。
使用Composer添加相关包到你的项目里面是一个很好的方式,无需安装PECLI扩展或者复制粘贴一个系列文件。那种方式已经很过时了,并且还浪费你大量的时间。


このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

今まで知らなかったことを後悔している 7 つの PHP 関数 今まで知らなかったことを後悔している 7 つの PHP 関数 Nov 13, 2024 am 09:42 AM

あなたが経験豊富な PHP 開発者であれば、すでにそこにいて、すでにそれを行っていると感じているかもしれません。あなたは、運用を達成するために、かなりの数のアプリケーションを開発し、数百万行のコードをデバッグし、大量のスクリプトを微調整してきました。

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

PHPでHTML/XMLを解析および処理するにはどうすればよいですか? PHPでHTML/XMLを解析および処理するにはどうすればよいですか? Feb 07, 2025 am 11:57 AM

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

母音を文字列にカウントするPHPプログラム 母音を文字列にカウントするPHPプログラム Feb 07, 2025 pm 12:12 PM

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用してPHPの特定の文字列内の母音の数を計算する方法を学びます。英語の母音は、a、e、i、o、u、そしてそれらは大文字または小文字である可能性があります。 母音とは何ですか? 母音は、特定の発音を表すアルファベットのある文字です。大文字と小文字など、英語には5つの母音があります。 a、e、i、o、u 例1 入力:string = "tutorialspoint" 出力:6 説明する 文字列「TutorialSpoint」の母音は、u、o、i、a、o、iです。合計で6元があります

PHPでの後期静的結合を説明します(静的::)。 PHPでの後期静的結合を説明します(静的::)。 Apr 03, 2025 am 12:04 AM

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

PHPマジックメソッド(__construct、__destruct、__call、__get、__setなど)とは何ですか? PHPマジックメソッド(__construct、__destruct、__call、__get、__setなど)とは何ですか? Apr 03, 2025 am 12:03 AM

PHPの魔法の方法は何ですか? PHPの魔法の方法には次のものが含まれます。1。\ _ \ _コンストラクト、オブジェクトの初期化に使用されます。 2。\ _ \ _リソースのクリーンアップに使用される破壊。 3。\ _ \ _呼び出し、存在しないメソッド呼び出しを処理します。 4。\ _ \ _ get、dynamic属性アクセスを実装します。 5。\ _ \ _セット、動的属性設定を実装します。これらの方法は、特定の状況で自動的に呼び出され、コードの柔軟性と効率を向上させます。

See all articles