小技巧: 如果你正在使用Git来管理你的项目, 你可能要添加 display:inline-block</strong>; line-height:19.6875px; margin:0px 2px; background-color:rgb(249,242,244)">vendor 到你的 display:inline-block</strong>; line-height:19.6875px; margin:0px 2px; background-color:rgb(249,242,244)">.<strong>Git</strong>ignore 文件中。
你不会希望将所有的代码都添加到你的版本库中。
另一件事是 display:inline-block</strong>; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">install 命令将创建一个 display:inline-block</strong>; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">composer.lock 文件到你项目的根目录中。display:inline-block</strong>; line-height:33.75px; margin:0px 2px; background-color:rgb(249,242,244)">composer.lock -
ファイルをロックします 依存関係をインストールすると、Composer はインストール中に正確なバージョン番号のリストを display:inline-block</strong>; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">composer.lock ファイル。これにより、変更されたプロジェクトがロックされます。特定のバージョンを送信してください。display:inline-block:18px;background-color:rgb(249,242,244); >composer.lock (display:inline-block</strong>; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">composer.lock 文件。这将锁定改项目的特定版本。请提交你应用程序的 display:inline-block</strong>; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">composer.lock (包括 display:inline-block</strong>; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">composer.json)到你的版本库中这是非常重要的,因为 display:inline-block</strong>; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">install 命令将会检查锁文件是否存在,如果存在,它将下载指定的版本(忽略 display:inline-block</strong>; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">composer.json 文件中的定义)。这意味着,任何人建立项目都将下载与指定版本完全相同的依赖。你的持续集成服务器、生产环境、你团队中的其他开发人员、每件事、每个人都使用相同的依赖,从而减轻潜在的错误对部署的影响。即使你独自开发项目,在六个月内重新安装项目时,你也可以放心的继续工作,即使从那时起你的依赖已经发布了许多新的版本。如果不存在 display:inline-block</strong>; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">composer.lock を含む) をリポジトリに追加します。display:inline-block</strong>; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">composer.jsonこれは非常に重要です。 249,242,244)">install コマンドは、ロック ファイルが存在するかどうかを確認します。存在する場合は、指定されたバージョンがダウンロードされます (🎜 ファイル内の定義は無視されます)。🎜🎜これは、プロジェクトを構築するすべての人が、継続的統合サーバー、運用環境、チームの他の開発者、その他すべてが指定したものとまったく同じバージョンの依存関係を使用するため、デプロイメントに対する潜在的なバグの影響が軽減されます。プロジェクト単体では、6 か月後にプロジェクトを再インストールすると、依存関係の多くの新しいバージョンがリリースされているため、安心して作業を続けることができます。 🎜🎜 存在しない場合は、display:inline-block</strong> >; line-height:18px; margin:0px 2px; 背景色:rgb(249,242,244)">composer.lock ファイル、コンポーザー
🎜を読み取り、ロックファイルを作成します。 🎜这意味着如果你的依赖更新了新的版本,你将不会获得任何更新。此时要更新你的依赖版本请使用 display:inline-block</strong>; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">update 命令。这将获取最新匹配的版本(根据你的 display:inline-block</strong>; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">composer.json 文件)并将新版本更新进锁文件。<codeAndale Mono',monospace; font-size:undefined; padding:0px; color:inherit; direction:ltr; word-spacing:normal; word-break:normal; background-color:transparent">php composer.phar update
</code>如果只想安装或更新一个依赖,你可以白名单它们:<codeAndale Mono',monospace; font-size:undefined; padding:0px; color:inherit; direction:ltr; word-spacing:normal; word-break:normal; background-color:transparent">php composer.phar update monolog/monolog [...]
</code>注意: 对于库,并不一定建议提交锁文件 请参考:库的锁文件.
Packagistpackagist 是 Composer 的主要资源库。 一个 Composer 的库基本上是一个包的源:记录了可以得到包的地方。Packagist 的目标是成为大家使用库资源的中央存储平台。这意味着你可以 display:inline-block</strong>; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)"><strong>require</strong> 那里的任何包。当你访问 packagist website (packagist.org),你可以浏览和搜索资源包。任何支持 Composer 的开源项目应该发布自己的包在 packagist 上。虽然并不一定要发布在 packagist 上来使用 Composer,但它使我们的编程生活更加轻松。自动加载对于库的自动加载信息,Composer 生成了一个 display:inline-block</strong>; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">vendor/autoload.php 文件。你可以简单的引入这个文件,你会得到一个免费的自动加载支持。<codeAndale Mono',monospace; font-size:undefined; padding:0px; color:inherit; direction:ltr; word-spacing:normal; word-break:normal; background-color:transparent"><span><strong>require</strong></span><span>'vendor/autoload.php'</span><span>;</span></code>这使得你可以很容易的使用第三方代码。例如:如果你的项目依赖 monolog,你就可以像这样开始使用这个类库,并且他们将被自动加载。$log=newMonolog\Logger('name');$log->pushHandler(newMonolog\Handler\StreamHandler('app.log', Monolog\Logger::WARNING));$log->addWarning('Foo');你可以在 display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">composer.json 的 display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">autoload 字段中增加自己的
autoloader。{
"autoload": {
"psr-4": {"Acme\\": "src/"}
}
}
Composer 将注册一个 PSR-4 autoloader 到 display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">Acme 命名空间。你可以定义一个从命名空间到目录的映射。此时 display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">src 会在你项目的根目录,与 display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">vendor 文件夹同级。例如 display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">src/Foo.php 文件应该包含 display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">Acme\Foo 类。添加 display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">autoload 字段后,你应该再次运行 display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">install 命令来生成 display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">vendor/autoload.php 文件。引用这个文件也将返回 autoloader 的实例,你可以将包含调用的返回值存储在变量中,并添加更多的命名空间。这对于在一个测试套件中自动加载类文件是非常有用的,例如。$loader=require'vendor/autoload.php';$loader->add('Acme\\Test\\',__DIR__);除了 PSR-4 自动加载,classmap 也是支持的。这允许类被自动加载,即使不符合 PSR-0 规范。详细请查看 自动加载-参考。注: Composer は独自のオートローダーを提供します。これを使用したくない場合は、display:inline-block; line-height:19.6875px; margin:0px 2px; background-color:rgb(249,242,244)">vendor/composer/autoload_*.php ファイルをインポートするだけで、独自の構成が可能な連想配列が返されます。
オートローダー。
上記では、PHP Composer のインストールと使用法を、関連する内容も含めて紹介しています。PHP チュートリアルに興味のある友人に役立つことを願っています。