検索

レビュー作成者

Dec 02, 2020 pm 03:07 PM
composerphp

次のチュートリアル コラムでは、composer について説明し、composer について確認していきます。困っている友人の役に立てば幸いです。

レビュー作成者

#Composer は、PHP コミュニティによって推奨されている依存関係管理ツールです。 Composer は PHP にとって、npm は Node にとってのようなもので、現代の PHP 開発にはほぼ必須のスキルです。この記事では、Composer の関連概念と使用法を簡単に説明します。

拡張機能とパッケージ

関連する概念はフレームワークとライブラリです。フレームワークとライブラリの違いについては、以前に書いたこの記事を参照してください。

拡張機能とパッケージ2 つは非常によく似た概念です。 PHP の世界では、この 2 つは一般的に次のように理解され区別されます: エクステンションとモジュールは同等であり、C 言語で書かれた関数のコレクションです; パッケージとライブラリは同等で、主に C 言語で書かれています。 PHP によって実装される関数の一部であり、拡張機能はダイナミック リンク ライブラリ (dll など) の形式でロードされ、パッケージは require/include を通じてロードされます。ほとんどの場合、この 2 つを混合しても理解が困難になることはありません。

一般的な拡張機能には、GD、ZIP、XML、MySQLi、OPCache などが含まれます。一般的なパッケージには、PHPMailer、PHPOffice、HTMLPurifier などが含まれます。

PEAR と PECL

Composer が普及する前は、PEAR と PECL の 2 つのツール (コミュニティ) が PHP 開発者によく知られていました。 PEAR は PHP Extension and Application Repository の略で、公式 Web サイトは http://pear.php.net、PECL は PHP Extension Community Library の略で、公式 Web サイトは http://pecl.php.net です。

この 2 つの違いは拡張機能とパッケージによって区別できます: PECL ホスティング拡張機能、ソース コードは主に APC、AMPQ などの C ファイルです; PEAR ホスティング パッケージ、機能は PHP で実装されます。 PHP CodeSniffer、HTTP Request など。;PEAR は pear コマンドに対応し、PECL は pecl コマンドに対応します。これら 2 つのコマンドを使用して、拡張機能とパッケージをインストールおよび管理できます (pear の build/pickleサブコマンドは PECL で拡張機能をコンパイルすることもできます)。二人はお互いを補い合っており、公式サイトでは姉妹のような関係であると説明されている。

PECL は公式拡張の補足であり、現在もアクティブであり、いくつかの優れた拡張は公式拡張となる可能性があります。ハン・ティエンフェン・マスターのスウール拡張もPECLでホストされており、中国では非常によく知られています。それに比べれば、PEAR は過去のものです。 PEAR2 と Pyrus (PHP5.3 に基づいて構築された次世代 PEAR パッケージ インストール ツール、公式 Web サイト http://pear2.php.net) の登場により、PEAR を救うことができなくなりました。 PEAR の衰退に伴い、この記事の主人公である Composer が台頭します。

PEAR は「再利用可能な PHP コンポーネントを提供する」という位置づけで、開発者に機能パッケージを一元的に提供します。集中リリース方式はコードの品質は確保できるものの、レビューに合格したパッケージしかリリースできないためメンテナンスに不便があり、パッケージの陳腐化現象も深刻です。 PEAR によってインストールされるパッケージはグローバルであり、依存パッケージをプロジェクトごとにインストールすることはできません。権限のないユーザーが依存パッケージを自分でインストールすることはできません。その他の欠点としては、依存関係の管理が不十分であることが挙げられます。 Github の人気と Composer の登場により、パッケージ管理は Composer の時代に入りました。 PEARは歴史的使命を終えましたので、安心してご利用いただけます。

Composer

厳密に言えば、Composer はパッケージ マネージャーではなく、依存関係管理ツールとして位置付けられます。 Composer の中国語 Web サイトでは、Composer の働きを次のように紹介しています:

Composer は次のように問題を解決します:

a) いくつかのライブラリに依存するプロジェクトがあります。

b) これらのライブラリの一部は他のライブラリに依存しています。

c) あなたは何に依存しているかを宣言します。

d) Composer は、どのバージョンのパッケージをインストールする必要があるかを判断し、それらをインストールします (プロジェクトにダウンロードします)。

Composer は、PEAR で実行できることはすべて実行できます (PECL 拡張機能のインストールを含む)。 Composer はデフォルトでパッケージをプロジェクト ディレクトリにインストールし、通常のユーザーはそれを通常どおり使用できます (Composer は公式に、root として Composer コマンドを実行しないことを推奨しています)。ベスト プラクティス (つまり、有名な PSR 仕様。詳細については、 PHP-FIG 公式 Web サイト https://www.php-fig.org) は、PHP コミュニティでのコーディング スタイルの標準化を大幅に促進します。Composer は、誰でもコード パッケージを公開できる分散型プラットフォームです。 PEAR の後継として、Composer のパフォーマンスはコミュニティのテストに耐え、依存関係管理の事実上の標準ツールとなっています。

Composer は現在巨大なエコシステムを形成しており、量の点では Composer のパッケージは PEAR をはるかに上回っています。誰でもレビューなしで自由にパッケージを公開できるため、Composer エコシステム内のパッケージには、不均一なコード品質、さまざまなコード スタイル、バックドアの脆弱性などの隠れた懸念がある可能性があります。さらに、Composer の依存関係管理はプロジェクトに基づいており、同じパッケージがマシンに複数回インストールされる可能性があります。全体として、Composer は PHP 開発エコシステムを大きく変え、コード交換とコミュニティ開発を促進しました。

Composer の使用法

Composer はプロジェクトの依存関係を管理するために生まれており、プロジェクト内の Composer.json ファイルがその作業の基礎となります。ファイルの最も重要な部分は、Composer にインストールする予定のパッケージとそのバージョンを通知する require セクションです。例:

{
    "name": "tlanyan/foo",
    "version": "1.0.0",
    ....
    "require": {
        "php": ">=5.4.0",
        "yiisoft/yii2": ">=2.0.6",
        "yiisoft/yii2-swiftmailer": "*",
        "yiisoft/yii2-redis": ">=2.0.0",
        "smarty/smarty": "< =3.1.25",
        "yiisoft/yii2-smarty": ">=2.0.0",
        "phpoffice/phpexcel": ">=1.8.0",
        "tecnickcom/tcpdf": "~6.2.0"
    },
    ....
}

然后运行composer install命令,Composer会自动分析依赖,安装最合适的包到vendor目录下。加-v(-vv, -vvv)选项会打印命令执行过程中的详细信息。安装完毕后,vendor目录下会生成autoload.php文件。在项目的入口文件中包含此文件: require __DIR__ . "/vendor/autoload.php";,接下来便可在项目的任何地方引用依赖包中的接口和类。

install命令,Composer提供了许多其他命令管理依赖。常用的命令场景包括:查找依赖、引入依赖、安装依赖、更新依赖。分别对应的命令是:

  1. composer search: 根据关键字查找依赖包,例如查找本人发布的包:composer search tlanyan。该命令等同于上https://packagist.org进行包查找;
  2. composer require: 引入依赖,声明项目或者全局(global,用户名全局,非系统全局)依赖某个包, 例如声明需要swiftmailer包: composer require [global] "swiftmailer/swiftmailer:dev-master";该命令更新composer.json文件,并默认立即安装依赖(--no-update选项可阻止默认安装);效果等同于编辑composer.json文件,然后执行install命令;
  3. composer install:安装composer.json声明的依赖包,最终安装的依赖包版本可能取决于有无composer.lock文件;
  4. composer update: 更新依赖到最新版本,相当于删除composer.lock文件后执行composer install

以上四条命令涵盖使用Composer的大部分场景。以下是几个常用的辅助命令,与依赖分析相关:

  1. composer info: 查看安装的依赖包信息,与composer show等价;
  2. composer dumpautoload: 加-o选项可导出优化的加载器;
  3. composer why(-not): 查看(不)安装某个包的原因。

总结

从拷贝第三方代码到项目中(1994),到PEAR安装依赖包(1999),再到Composer兴起(2012),PHP社区经历了将近20年的探索。PHP这门古老的语言,也在不断的发展更新,在web领域一直发光发热。Composer作为目前PHP包依赖管理的最佳工具,值得每一位PHP开发人员掌握。

以上がレビュー作成者の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事はsegmentfaultで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
作曲家のスキルと資質:概要作曲家のスキルと資質:概要Apr 25, 2025 am 12:03 AM

成功した作曲家になるには、音楽理論、楽器のパフォーマンス、サウンドデザインなどのスキルや、キャプチャと絶え間ない仕事の修正への鋭いインスピレーションが必要です。作曲家はこれらのスキルと特性を使用して、感情と思考を音楽作品に変え、リスナーと共鳴します。

作曲家の資格:習熟度の評価作曲家の資格:習熟度の評価Apr 24, 2025 am 12:15 AM

作曲家の習熟度は、次の4つの側面で評価できます。1)パッケージ、依存関係、バージョン制御などの基本概念を理解する。 2)Composer.jsonの解析、依存関係の解決、パッケージのダウンロード、Autoloadファイルの生成を含むマスターコア関数。 3)ComposerInstall、更新、要求、およびダンプオートロードなど、基本的および高度なコマンドを使用するのに習熟しています。 4)Composer.Lockファイルの使用、AutoLOAD構成の最適化、定期的にキャッシュのクリーニングなどのベストプラクティスを適用します。

作曲家:自動タスクのAIを活用します作曲家:自動タスクのAIを活用しますApr 23, 2025 am 12:03 AM

Composerを使用してAIを組み合わせて自動タスクを実現します。 1。Composerは、構成ファイルを介して依存関係を管理し、AIはバージョンの選択を最適化できます。 2。実際のアプリケーションでは、AIを使用して、依存関係の管理、テスト、展開を自動化できます。 3.パフォーマンスの最適化には、依存関係の負荷とキャッシュ戦略が含まれます。 4.バージョンの競合やAIの誤判断などの問題に注意してください。これらの方法により、AIは仕事の効率と知性を改善できます。

AIの作曲家:コード提案と洞察AIの作曲家:コード提案と洞察Apr 22, 2025 am 12:05 AM

ComposerWithaiは、AIを使用してプログラミングエクスペリエンスを向上させるツールです。 1)コード構造、構文、パターンを分析することにより、リアルタイムの提案とバグ修正を提供します。 2)高度な機能には、コードのリファクタリング、パフォーマンスの最適化、セキュリティチェックが含まれます。 3)使用する場合、構成を調整し、フィードバックを提供し、他のツールを組み合わせて一般的な問題を解決できます。

作曲家:PHP依存関係マネージャーの紹介作曲家:PHP依存関係マネージャーの紹介Apr 21, 2025 am 12:02 AM

Composerは、PHPの依存関係管理ツールであり、プロジェクトに必要なライブラリとパッケージを管理するために使用されます。 1)composer.jsonファイルを介して依存関係を定義します。2)コマンドラインツールを使用してインストールと更新、3)依存関係管理プロセスを自動化し、開発効率を向上させ、4)依存関係を動的に追加するなどの高度な機能をサポートします。

作曲家の目的:依存関係を効率的に管理します作曲家の目的:依存関係を効率的に管理しますApr 20, 2025 am 12:04 AM

Composerは、PHPの依存関係管理ツールであり、Composer.jsonおよびComposer.Lockファイルを介してプロジェクトの依存関係を管理しています。 1. composer.jsonファイルを作成し、composerinstallインストール依存関係を実行します。 2。ComposerRequireを使用して、新しい依存関係を追加します。 3。クラスの自動読み込みを実装するように自動車を構成します。 4. ComposerDiagnoseを使用して、プロジェクトの健康状態を確認します。 5.依存関係管理の最適化:パッケージ名の更新を指定し、ComposerDump-Autoload-Oを使用してAutoloaderを最適化し、ComposerInStall-no-dを使用します

作曲家とAI:PHP開発における新しい可能性作曲家とAI:PHP開発における新しい可能性Apr 19, 2025 am 12:03 AM

AIと作曲家の組み合わせは、PHP開発の効率とセキュリティを改善できます。具体的には次のように反映されています。1。依存関係分析と最適化:AIは依存関係を予測し、競合を減らすことができます。 2。自動化されたセキュリティチェック:AIはセキュリティの脆弱性を特定することができ、それらを更新することをお勧めします。 3。コード生成と最適化:AIは、関連するコードを自動的に生成および最適化できます。

DICR/YII2-GOOGLEを使用して、Yii2にGoogle APIを統合しますDICR/YII2-GOOGLEを使用して、Yii2にGoogle APIを統合しますApr 18, 2025 am 11:54 AM

vProcesserazrabotkiveb-Enclosed、する、するまみ、するまで。 leavallysumballancefriablancefaumdoptomatification、čtokazalovnetakprosto、kakaožidal.posenesko

See all articles

ホット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 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

メモ帳++7.3.1

メモ帳++7.3.1

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

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、