ホームページ php教程 PHP开发 Laravelで独自のクラスライブラリを使用する3つの方法

Laravelで独自のクラスライブラリを使用する3つの方法

Dec 27, 2016 am 11:34 AM

Composer を使用すると、多くの既存のライブラリ (packagist.org 内のライブラリなど) を再利用できますが、それでも Composer と互換性のない一部のパッケージやライブラリを使用する場合があります。また、特定のプロジェクトでは、特定のクラス ライブラリを作成することもありますが、それをコンポーザー パッケージにするつもりはない場合もあります。現時点では、次の方法で独自のクラス ライブラリを使用できます。

直接インスタンス化できるクラスを追加します

プロジェクトで直接使用する必要がある一部のクラスは、次の方法でLaravelに追加できます

1. クラスライブラリファイルapp/libraries/を作成します。 class/myClass .php
2. ファイルの内容を書き込みます

<span style="font-size: 16px;"><?php<br/>class Message {<br/>    public static function display() {<br/>    }<br/>}<br/>?><br/></span>
ログイン後にコピー

app/start/globals.phpにクラスのインポートパスを追加します

<span style="font-size: 16px;"><?php <br/>ClassLoader::addDirectories(array(<br/>    app_path().&#39;/commands&#39;,<br/>    app_path().&#39;/controllers&#39;,<br/>    app_path().&#39;/models&#39;,<br/>    app_path().&#39;/database/seeds&#39;,<br/>    app_path().&#39;/libaries/class&#39;, // 在这里增加<br/>));<br/>?><br/></span>
ログイン後にコピー

composer.jsonにautoloadディレクトリを追加します

<span style="font-size: 16px;">"autoload": {<br/>    "classmap": [<br/>        "app/commands",<br/>        "app/controllers",<br/>        "app/models",<br/>        "app/database/migrations",<br/>        "app/database/seeds",<br/>        "app/tests/TestCase.php",<br/>        "app/libraries/class"   //在这里增加<br/>    ]<br/>},<br/></span>
ログイン後にコピー

1.インポートマッピングを作成するには、composer dump -autoload を実行します
2. インポートしたクラスを使用して、Message::display() を直接呼び出します

このメソッドもキュークラスを追加する方法です。 Laravel のキュー処理クラスを配置する必要があります。実際には、上記の方法に従ってアプリ ディレクトリにキュー ディレクトリを作成し、それを直接インスタンス化できるようにします

直接呼び出し可能な関数を追加します

var_dump () の代わりに v() を使用するには、Laravel でこれを行うのが非常に簡単です

1. 関数ファイル app/libraries/function/helper.php
を作成します

<span style="font-size: 16px;"><?php <br/>function v($msg){<br/>    var_dump($msg);<br/>}<br/>?><br/></span>
ログイン後にコピー

ファイルをコンポーザーに自動的に追加します リスト

<span style="font-size: 16px;">"autoload": {<br/>   "classmap": [<br/>       ...<br/>   ],<br/>   "files": [<br/>       "app/libraries/function/helper.php"<br/>   ],<br/>},<br/></span>
ログイン後にコピー

をインポートするか、プロジェクトにこのファイルが必要であることを表示します。 app/start/global.php を開いて次を追加します:

<span style="font-size: 16px;">require app_path().&#39;/libraries/function/helper.php&#39;;<br/></span>
ログイン後にコピー

個人的には、どちらの方法でも問題ありません。このファイルの読み込み時間を制御したい場合は、filter.php ファイルに次の内容を追加することもできます

<span style="font-size: 16px;">App::before( function( $request ) {<br/>    require( "{$GLOBALS[&#39;app&#39;][&#39;path.base&#39;]}/app/libraries/function/helper.php" );<br/>});<br/></span>
ログイン後にコピー

関数 v('hello world') をプロジェクト内で直接使用します。

もう少し複雑なクラス ライブラリを追加します

クラス ライブラリはファイルほど単純ではない場合があるため、次の方法の方が適しています。複数のファイル構造用の複数のクラス ライブラリ。

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 サイトに注目してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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