フラッシュ データ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その場所のようです。