フラッシュ データdisplay_messages()
を検索して画面に表示する簡単な関数を作成しました。Session::get('errors')
この機能はどこに置くのですか?Codeigniter には、小さなグローバル ヘルパー メソッドをすべて貼り付けることができるヘルパー フォルダーがありました。
ウスマンが提案したように、
class Demo() {
その中に定義する{{ Demo::display() }}
ライブラリとモデルが start.php 行 76 で自動ロードされるため、機能します。ファイル名はクラス名と一致する必要があると思います (大文字に注意してください)。
<?php
class Demo {
public static function display() {
if( !$message = Session::get('errors'))
$message = 'No Errors';
echo "<pre>print_r($message)</pre>";
}
}
クラス名Commonの使用に問題があった理由がよくわかりません。競合がある可能性があります(これが重要な場合は、名前空間を定義できます)...
helpers
アプリフォルダー内にフォルダーを作成し、ファイルを作成しますapplication_helper.php
。そのようなコードで:
// app/helpers/application_helper.php
function display_messages()
{
exit('Yes');
}
次に、rootでcomposer.jsonファイルを開きます。Composerapp/helpers/application_helper.php
で自動ロードしfiles
ます。
"autoload": {
....
"files": [
"app/helpers/application_helper.php"
]
完了しました。これで、に電話をかけることができますdisplay_messages()
。
composer dump
一部のオートローダーでは、初めてコマンドを実行する必要がある場合があります。
memeLab が非常に役立つ回答を提供してくれてありがとう。libraries
「 」フォルダは自動ロードディレクトリではなく、少なくとも私が使用しているL4のリリース/現在のバージョンではなかったので、彼の答えを拡張したかっただけです。また、start.php は、local.php、artisan.php のあるstart
フォルダーに展開されているようglobal.php
です。
そのため、L4 レイジー オート ローダーで別のライブラリまたはヘルパーに独自のクラスを使用するには、これらを格納するフォルダーをglobal.php
. たとえばlibraries
、ディレクトリ リストにフォルダーを追加しました。
ClassLoader::addDirectories(array(
app_path().'/commands',
app_path().'/controllers',
app_path().'/models',
app_path().'/database/seeds',
// this a custom path
app_path().'/libraries',
));
次に、そのフォルダーで定義したクラスは、コントローラーclassname.php
で呼び出すことができCLASSNAME::methodName($someVar);
ます。
class CLASSNAME {
public static function methodName($someVar=NULL) {
// whatever you want to do...
return $message;
}
}
したがって、この方法でヘルパー クラスを作成し、コントローラー全体で使用するさまざまなメソッドを定義できます。また、この方法でクラスの外部で通常の関数を定義すると、それらが機能しないため、悲しみが生じることに注意してください (クラスが常にロードされるとは限らないため)。(たとえばsomeFunctionName($someVar);
の代わりにCLASSNAME::methodName($someVar);
) この方法で関数を作成したい場合は、 がロードされていることを確認する必要がありますが、これについては詳しく説明しません。本当に必要なクラス。
memeLab と Usman に再び感謝します。彼らの回答がなければ、ここまでたどり着くことはできなかったでしょう。:)
L3 では、通常はapplication/libraries/helpers.php
ファイルを作成require_once()
し、application/start.php
. L3 がファイルを保持する方法に似ていlaravel/helpers.php
ます。
L4でも同様のことができると思います。
編集:ソースを見るだけで、app/start/local.php
その場所のようです。