Laravel で自作のクラス ライブラリを使用する 3 つの方法
この記事ではLaravelで自作クラスライブラリを使う3つの方法を中心に紹介します この記事では直接インスタンス化できるクラスを追加する方法、直接呼び出せる関数を追加する方法、少し複雑なクラスライブラリを追加する方法の3つを解説します。必要としているお友達は参考にしていただければ幸いです。
Composer を使用すると、多くの既存のライブラリ (packagist.org にあるものなど) を再利用できますが、それでも Composer と互換性のない一部のパッケージやライブラリを使用する場合があります。さらに、特定のプロジェクトでは、特定のクラス ライブラリを作成することもありますが、それをコンポーザー パッケージにするつもりはない場合もあります。現時点では、次の方法で独自のクラス ライブラリを使用できます。
直接インスタンス化できるクラスを追加します
プロジェクトで直接使用する必要がある一部のクラスは、次の方法でLaravelに追加できます
1. クラスライブラリファイルapp/libraries/class/myClassを作成します。 php
2 .ファイルの内容を書き込みます
< ?php class Message { public static function display() { } } ?>
app/start/globals.phpにクラスインポートパスを追加します
< ?php ClassLoader::addDirectories(array( app_path().'/commands', app_path().'/controllers', app_path().'/models', app_path().'/database/seeds', app_path().'/libaries/class', // 在这里增加 )); ?>
composer.jsonにautoloadディレクトリを追加します
"autoload": { "classmap": [ "app/commands", "app/controllers", "app/models", "app/database/migrations", "app/database/seeds", "app/tests/TestCase.php", "app/libraries/class" //在这里增加 ] },
1.composer dump-autoloadを実行してインポートマッピングを作成します。
2.使用方法 インポートしたクラス上で Message::display() を直接呼び出すだけです
この方法も、Laravel でキュー処理クラスをどこに配置すればよいのかわからない人が多いです。実際、上記の方法に従って、アプリディレクトリに queues ディレクトリを作成し、それを直接インスタンス化させます
直接呼び出せる関数を追加します
var_dump() の代わりに v() を使用することを好む人もいます。 Laravel でこれを行うのはとても簡単です
1. 関数ファイルを作成します app/libraries/function/helper.php 2. ファイルの内容を書き込みます
< ?php function v($msg){ var_dump($msg); } ?>
"autoload": { "classmap": [ ... ], "files": [ "app/libraries/function/helper.php" ], },
require app_path().'/libraries/function/helper.php';
個人的には、どちらの方法でも問題ありません。このファイルの読み込み時間を制御したい場合は、filter.php ファイルに次の内容を追加することもできます
App::before( function( $request ) { require( "{$GLOBALS['app'] ['path.base'] } /app/libraries/function/helper.php" ); });
もう少し複雑なクラス ライブラリを追加します
クラス ライブラリはファイルほど単純ではない場合があるため、次の方法は複数の用途に適しています。ファイル 複数の構造用のクラス ライブラリ。 psr0 または psr4 の標準ディレクトリ構造を作成します。コードをコピーします コードは次のとおりです:
libraries Myapp Search (note directory is capitalized) Search.php SearchFacade.php SearchServiceProvider.php AnotherLib
Myapp/Search/Search.php の Search クラスの名前空間は MyappSearch です。
"autoload": { "classmap": [ "app/commands", "app/controllers", "app/models", "app/libraries", "app/database/migrations", "app/database/seeds", "app/tests/TestCase.php" ] , "psr-0": { "Myapp": "app/libraries" } },
プロジェクトで new MyappSearchSearch() を使用して特定のクラスをインスタンス化する
概要
Laravel はどのメソッドが最適であるかを強制しませんが、プロジェクト構造を作成できる特定の標準があります明確であり、複数人で開発に協力する場合に通信コストを大幅に節約できます。以上がLaravel で自作のクラス ライブラリを使用する 3 つの方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









Laravel 9 と CodeIgniter 4 の最新バージョンでは、更新された機能と改善が提供されます。 Laravel9はMVCアーキテクチャを採用しており、データベース移行、認証、テンプレートエンジンなどの機能を提供します。 CodeIgniter4 は、HMVC アーキテクチャを使用してルーティング、ORM、およびキャッシュを提供します。パフォーマンスの面では、Laravel9 のサービスプロバイダーベースの設計パターンと CodeIgniter4 の軽量フレームワークにより、優れたパフォーマンスが得られます。実際のアプリケーションでは、Laravel9 は柔軟性と強力な機能を必要とする複雑なプロジェクトに適しており、CodeIgniter4 は迅速な開発や小規模なアプリケーションに適しています。

Laravel と CodeIgniter のデータ処理機能を比較します。 ORM: Laravel はクラスとオブジェクトのリレーショナル マッピングを提供する EloquentORM を使用しますが、CodeIgniter は ActiveRecord を使用してデータベース モデルを PHP クラスのサブクラスとして表します。クエリビルダー: Laravel には柔軟なチェーンクエリ API がありますが、CodeIgniter のクエリビルダーはよりシンプルで配列ベースです。データ検証: Laravel はカスタム検証ルールをサポートする Validator クラスを提供しますが、CodeIgniter には組み込みの検証関数が少なく、カスタム ルールの手動コーディングが必要です。実践例:ユーザー登録例はLarを示しています

Laravel - アーティザン コマンド - Laravel 5.7 には、新しいコマンドを処理およびテストするための新しい方法が付属しています。これには職人コマンドをテストする新しい機能が含まれており、そのデモについては以下で説明します。

初心者にとって、CodeIgniter は学習曲線が緩やかで機能は少ないですが、基本的なニーズはカバーしています。 Laravel は幅広い機能セットを提供しますが、学習曲線はわずかに急になります。パフォーマンスの点では、Laravel と CodeIgniter はどちらも良好なパフォーマンスを示します。 Laravel にはより広範なドキュメントとアクティブなコミュニティ サポートがあり、CodeIgniter はよりシンプルで軽量で、強力なセキュリティ機能を備えています。ブログアプリケーションを構築する実際のケースでは、Laravel の EloquentORM を使用するとデータ操作が簡素化されますが、CodeIgniter ではより手動の構成が必要になります。

大規模プロジェクト用のフレームワークを選択する場合、Laravel と CodeIgniter にはそれぞれ独自の利点があります。 Laravel はエンタープライズレベルのアプリケーション向けに設計されており、モジュール設計、依存関係の注入、強力な機能セットを提供します。 CodeIgniter は、速度と使いやすさを重視した、小規模から中規模のプロジェクトに適した軽量フレームワークです。複雑な要件と多数のユーザーを伴う大規模なプロジェクトには、Laravel のパワーとスケーラビリティがより適しています。単純なプロジェクトやリソースが限られている状況では、CodeIgniter の軽量で迅速な開発機能がより理想的です。

マイクロサービス アーキテクチャは、PHP フレームワーク (Symfony や Laravel など) を使用してマイクロサービスを実装し、RESTful 原則と標準データ形式に従って API を設計します。マイクロサービスはメッセージ キュー、HTTP リクエスト、または gRPC を介して通信し、監視とトラブルシューティングに Prometheus や ELKStack などのツールを使用します。

小規模なプロジェクトの場合、Laravel は強力な機能とセキュリティを必要とする大規模なプロジェクトに適しています。 CodeIgniter は、軽量さと使いやすさを必要とする非常に小規模なプロジェクトに適しています。

Laravel の Blade と CodeIgniter の Twig テンプレート エンジンを比較し、プロジェクトのニーズと個人的な好みに基づいて選択してください。Blade は MVC 構文に基づいており、適切なコード編成とテンプレートの継承を促進します。 Twig は、柔軟な構文、強力なフィルター、拡張サポート、セキュリティ サンドボックスを提供するサードパーティ ライブラリです。
