composer の次のチュートリアル コラムでは、composer の学習方法を紹介します。困っている友人の役に立てば幸いです。
システムにさまざまな Web アプリケーションがあるが、それらを実行する必要がある場合共有する 大量のコードをどうするか
システムに拡張機能が必要で、インターネット上の誰かがその使い方を提供するだけの場合PHP コードをアップグレード、ダウングレード、ロールバックする方法
タスクを分散する方法、複数のエンジニアが共同作業できるようにする方法 開発タスク
私が PHP に出会ったのは、V5.3.5 がリリースされたばかりの 2011 年でした。言語レベルで見ると、PHP にはそれほど明らかな欠点はないと思いますが、Web 向けの豊富な関数ライブラリをベースに、クラス、SPL、匿名関数なども備えています。これらの機能 (まったく「特別」ではありません) は、大規模プロジェクトのコーディング ニーズをサポートするのに十分です。
PHP5.3
しかし、実際に開発をしていて、本当に PHP を使ってコードを書きたいと思うと、とんでもない事態に遭遇することがよくあります。 PHPを使うため。しかし、まだ頭が痛いです。 Web サイトを作成するときに確認コードが必要になる場合がありますが、ほとんどの場合、自分で確認コードを書きたくありません。インターネット上には非常に多くの種類の確認コードがあるため、当然それらを直接使用したいと考えます。しかし、それを直接使用したい場合、私がしなければならないことは次のとおりです:
- クラスを見つけました。このクラスをプロジェクトに導入する必要があります。どのディレクトリに配置すればよいでしょうか?オートロードするにはどうすればよいですか?何かの拡張機能に依存しているのでしょうか?現在使用しているものよりも新しいバージョンの PHP で使用する必要がありますか?これらはすべて私が解決したい問題です。
- 2 で述べた問題をすべて解決したい場合は、1 つだけ書けばいいのではないでしょうか?
- f**k it
- 自分のコードを使用する場合でも、複数の Web アプリケーション (コンピューター側、WAP 側、API インターフェースは正常です) がある場合、もちろん、これらがプロジェクト (ディレクトリ) 内に存在しないことを願っています。指定されたファイルを表示することがさらに困難になり、メンテナンス コストも増加します。しかし、これらの Web アプリケーションを分離すると、非常に多くの共通コード (モデル、ロジック、認証など) が存在しました。これらのコードをどのように処理すればよいでしょうか? Web アプリケーションの小さなロジックを変更しました。他のアプリケーションでは、それを思い出せないか、ほんの小さな変化でさえ、コンピューターを壊したくなったり、仕事を辞めたり、リラックスするために外出したくなります。
わかりました。これらのコードを分割し、自動読み込みを通じて相互に使用します。これにより、より多くの人が開発に参加できるようになりますが、オンラインの状況は非常に複雑です。何か問題が発生した場合に備えて、コードの一部。特別な Web アプリケーションがあり、新しいコードがそれに適用されない場合に使用します。メンテナンスも問題であり、他の多くのプロジェクトに依存している Web アプリケーションを引き継ぐ場合、コードを少し変更すると、自動ロード コードによって Web アプリケーションがどのように動作するかを直感的に把握することが困難になるため、多くのトラブルが発生する可能性があります。他のプロジェクトのどのコードが使用されているか。
しかし、PHP に関しては、書くのに非常に便利なので、壊したくありません。まだ罠から抜け出したくない。しかし、上記の問題が解決されない場合、個人的には、PHP を書くのは依然として非常にイライラするものだと思います。他の言語がこの問題をどのように解決するかを見てみましょう。 JAVA の自然なパッケージング メカニズムにより、Maven、ノードの npm、さらには PHP よりも古い Perl にも cpan が使用できます。 PHP にはパッケージ管理メカニズムが必要ではないでしょうか?
幸いなことに、これらの問題は私の PHP 使用にそれほど長い間悩まされることはありませんでした。すぐに PHP に Composer が導入され、夜が明けたからです。
Composer は、PHP の依存関係管理ツールです。これにより、プロジェクトが依存するコード ライブラリを宣言でき、それらがプロジェクトにインストールされます。Composerの中国語公式サイトのご紹介です。
この文について、私の経験に基づいて詳しく説明してみます。
これにより、プロジェクトが依存するコード ベースを宣言できます。これは、コードを使用するときに、自分でコピーする必要がなくなり、宣言を通じて Composer に伝えることができることを意味します。レストランに食べに行っても、その必要はありません。シェフに作り方を教えてください。ましてや自分で料理するのであれば、皿に盛り付けて自分で食べる必要はありません。代わりに、ウェイターに自分の食べたいものを伝えてください。 「食べたいときは、彼に伝えてください。もちろん、今日はお腹の調子が悪くて、何か作ってくださいとは言えません。軽い料理の方が消化が簡単です。とにかく、私はこのように注文することはありません。いつも伝えなければなりません」食べたい料理と具体的な料理名。これが、以前の検索エンジンでコードを検索する場合との違いです。キーワードを通じて Composer に伝えることはできませんが、必要なコード ライブラリの名前を Composer に伝える必要があります。コードの名前はどうやって知ることができますか? すべてのコードが含まれており、コードを見つけて名前を知るための検索機能を提供する場所がない限り、他人のコードの名前を知ることは誰にも不可能です。 ##packagist.org はこれを行います。さまざまな検索エンジンで運に頼る必要はもうありません。ここでキーワードを検索しても、広告は表示されず、莆田も京東も表示されません。
- エンコーディング仕様 (
- psr-1
)
自動ローディング仕様 (##) # psr-4 - )
いくつかの共通インターフェイス ログ(
psr-3 - ) キャッシュ(
psr-6
) http(psr-7
) これらの規格については、公式 Web サイトで詳しく説明されています。ここで取り上げるのはpsr-4です。ここでは、私自身の理解と経験に基づいて詳しく説明します: psr-4 の自動読み込みは、フォルダーと名前空間に基づいています。ルート ディレクトリがルート名前空間に対応することを指定する必要があります。これに基づいて、ルート名前空間を削除できます。および名前空間外のクラス名を使用して、ルート フォルダーでこの PHP ファイルを見つけてロードします。
#根文件夹 lib#根命名空间 model#file lib/A.phpnamespace model;class A {}#file lib/entity/B.phpnamespace mode\entity;class B{}#file demo.php$a = new \model\A();$b = new \model\entity\B();
Composer は、指定された標準 (
psr-4 など) の関係 (たとえば、コード内の lib->model として)クラスを自動的にロードする関数を生成します。実際、Composer は次の標準を提供しています: files は、PHP ファイルのパスを指定する方法です。このメソッドは、要求されるたびにこれらのファイルをロードします。これは、いくつかの共通機能を持つ PHP ファイルに適しています
クラスマップはファイルよりも賢いです。自動ロード用にフォルダまたはファイルを指定できます。欠点は、フォルダを指定した場合でも、このフォルダにファイルを追加するには Composer が自動ロード ファイルを再生成する必要があることです。サードパーティのインターフェイス クライアントなど、psr-4 クラスまたはクラス ライブラリを使用できない一部のアプリケーション用です。このクライアントは、psr-4 ルールが登場する前に存在していた可能性があります。それでも管理に Composer を使用したい場合は、これを使用できますメソッド
psr-0 psr-4
の前身は以前は時代遅れでした。言わなかったことにしてください psr-4
上で紹介したのと同じです。はい、この方法で 1 つ以上のファイルを追加する場合、autoload
ファイルを再生成する必要はありません。これは、ファイルが名前空間とフォルダー間のマッピング関係に従って読み込まれるためです。 それでは、Composer がこれを実装するメリットは何でしょうか?
自動ロード ファイルを自分で記述する必要はありません。同時に、この標準は理解しやすく受け入れられやすく、コードの保守と学習のコストも削減されます。
As longサードパーティ ライブラリとして、自動ロードを処理するために Composer も使用する必要があるため、このパッケージを要求するだけで済み、Composer はこのサードパーティ ライブラリをロードするコードも処理します。非常に強力な自動ロード ファイル# があります。 ##したがって、私たちがしなければならないことは、Composer の扱い方を学び、世界中の開発者のコードを楽しみ始めることです。
就像上面描述的,Composer就像一个机器猫,你要什么它就给什么,那么交互的方式就类似于SQL语句那样,告诉它你要什么然后它给你结果。所以我们要做的就是描述需求,也就是当产品经理,好过瘾。
{ "name": "fmw/test", "description": "fmw test", "authors": [ { "name": "zzc", "email": "2272713550@qq.com" } ], "repositories": [ { "type": "composer", "url": "http://package.fmw.com" } ], "version":"1.0.106", "require": { "fmw/other-layer":"1.*", "fmw/common":"1.*" }, "require-dev":{ "php-console/php-console": "^3.1", "phpdocumentor/phpdocumentor": "2.*" }, "autoload":{ "psr-4":{ "model\\":"src/" } } }
以上代码是一个我用过的composer配置文件,可以看出这是一个标准的json。我们来看一下这段json的每个key:
name和description是你给这个php项目起的名字,当这个项目仅仅是一个web项目,这两个其实不是很重要,但是这个项目其实是一个向外发布的代码库,就很关键了,name需要独一无二,description需要一句话来描述这个包的作用。
authors就是相当于宣布一下主权,可以有多个
repositories相当于你需要下载的代码库所在的仓库,默认会有一个全局的仓库,具体是什么就不在这里说了,上面的某个网址有介绍,在这里添加一个是因为如果你有个私人的仓库(有些代码不太适合放在公开的仓库吧),则可以在这里声明
version是版本号,这个是跨时代的功能啊,有了这个,PHP程序员也可以刷版本号了啊!
require则是上面阐述了很多的功能,解决了我说的那些痛点,通过“name”:"version"声明,可以有多个,require以后使用composer install命令composer会下载代码并自动加载
require-dev用法一致,但是功能不同,是用来声明一些在开发时候才用到的包,比如测试、文档等等
autoload 上面有介绍,就不废话
上面工作做完以后,执行composer install我们可以看到和composer.json同级的文件夹下生成了一个vendor文件夹,我们新建一个php文件引入vendor下的autoload.php文件就可以使用包和我们自己声明的autoload的php文件了
#index.php
include ‘./vendor/autoload.php’;
到这里,我们就算会用了composer,至于如何使用composer的功能就不拾人牙慧了,但是还有一些问题想讨论一下。
比如有些代码不太适合放在公开的仓库,但是我们还是希望包的形式来使用,毕竟这样的话,一个公司内部就很容易分工了,每一个PHP程序员维护若干个包,多方便,所以建立一个内部的代码仓库是很重要的。这时候Composer官方提供的工具satis就可以发挥作用了。
Simple static Composer repository generator
这是它的介绍,一个简单的Composer仓库生成器。使用它的步骤如下:
在合适的目录执行 php composer.phar create-project composer/satis --stability=dev --keep-vcs(前提是你已经按照Composer)
新建一个satis.json 实例如下
{ "name": "My Repository", "homepage": "http://packages.dev.com", "repositories": [ {"type": "vcs", "url": "http://git.dev.com/maxincai/package1.git"}, {"type": "vcs", "url": "http://git.dev.com/maxincai/package1.git"}, ], "require": { "maxincai/package1": "*", "maxincai/package2": "*", } }
执行 php bin/satis build satis.json public/(public就是所有包的存放目录)
将public目录作为一个web服务对外发布就好了
使用的时候只需要在repositories多加一项(就像我在上面的composer.json做的那样),然后引入包就好了
关于Composer,上面就是我目前要说的了,通过Composer我们可以将业务逻辑、通用函数、逻辑拆分成不同的包,再也不需要做拷贝代码的蠢事了。
以上が作曲家をすぐに学ぶことができます!の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Composerは、PHPプロジェクトの開発手順を簡素化します。1)composer.jsonの「laravel/framework」の追加などの依存関係の追加。 2)名前空間とclassPathを定義することにより、自動的にロードし、autoload.phpファイルを生成します。 3)ComposerDump-Autoload-OおよびComposerInstallを使用して、パフォーマンスを最適化します-No-DEV-OPTIMIZE-AUTOLOADERコマンド。これらの手順を通じて、開発者はより効率的になり、一般的な間違いを回避できます。

作曲家になることの重要な要素には次のものがあります。1。音楽理論の習得、2。創造的でオリジナルであること、3。技術的なスキルを持っている、4。感情を表現し、物語を語ることができる。5。文化的および歴史的背景を理解する、6。

作曲家になるための手順には次のものがあります。1。ノート、リズム、ハーモニー、メロディーなどの音楽の基本的な要素をマスターします。 2。abletonliveなどの適切な技術ツールを選択します。 3.インスピレーションの獲得、概念、執筆、修正、改善など、作曲のプロセスを理解する。 4.シンプルなメロディーの作成から始めて、ハーモニーなどの複雑なテクニックを徐々に試します。 5.ノート選択やリズム配置などのデバッグ技術を通じて一般的な問題を解決します。 6.テンプレートの使用、バージョン制御、コラボレーションなど、パフォーマンスの最適化とベストプラクティスを適用します。

Composerは、依存関係管理を簡素化し、開発効率とコードの品質を向上させるため、堅牢なPHPアプリケーションを構築するための重要なツールです。 1)Composerは、Composer.jsonファイルを介してプロジェクトの依存関係を定義し、これらの依存関係を自動的にダウンロードおよび管理します。 2)composer.lockファイルを生成して、依存関係バージョンが一貫しており、ベンダー/autoload.phpを介して自動的に読み込まれていることを確認します。 3)使用の例には、ログライブラリの追加などの基本的な使用法や、バージョンの制約や環境変数管理などの高度な使用法が含まれます。 4)一般的なエラーデバッグ手法には、依存関係の競合とネットワークの問題の処理が含まれます。 5)パフォーマンス最適化の提案には、Composer.Lockファイルの使用と自動負荷の最適化が含まれます。

作曲家を使用するときに熟練するには、次のスキルをマスターする必要があります。1。composer.jsonとcomposer.lockファイルを使用するのに熟練している必要があります。2。作曲家の仕組み、3。マスターコンポーザーのコマンドラインツール、4。基本的および高度な使用法を理解します。

Composerは、PHPの依存関係管理ツールであり、プロジェクトの依存関係を宣言、ダウンロード、管理するために使用されます。 1)Composer.jsonファイルを介して依存関係を宣言します。2)ComposerInstallコマンドを使用して依存関係をインストールし、3)依存関係ツリーを解析し、Packagistからダウンロードします。4)Autoload.phpファイルを生成して自動荷重を簡素化します。

AppComposerは、アプリケーションを構築および管理するためのツールです。 1)事前定義されたコンポーネントをドラッグして構成することにより、アプリケーションの開発を簡素化し、効率を向上させます。 2)開発者は、コンポーネントを定義し、インターフェイスを組み合わせ、ビジネスロジックを定義し、最終的にアプリケーションをレンダリングできます。 3)タスク管理や条件付きレンダリングなど、基本的および高度な使用法をサポートし、柔軟なアプリケーションの構築に役立ちます。

作曲家は、PHPの依存関係管理ツールです。 Composerを使用するコアステップは次のとおりです。1)「Stripe/Stripe-PHP」などのComposer.jsonの依存関係を宣言:「^7.0」; 2)ComposerInStallを実行して、依存関係をダウンロードおよび構成します。 3)Composer.LockおよびAutoload.phpを介してバージョンとオートロードを管理します。 Composerは依存関係管理を簡素化し、プロジェクトの効率と保守性を向上させます。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

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

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

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

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

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。
