Laravel5.5で
CodeIgniterのlibrary のような仕組みがないかと探してみたのですが、
公式ドキュメントではそのような記述がなく、どうしたらよいのか分かりません。
例えば、いろいろなページ(Class)で共通の処理があるとします。
その個々のClass で同じ記述をするのはとても無意味なので、
どこかのファイルに記載しておきたいです。
そのクラスの関数を個別に呼び出して引数を変更して
処理を行えればいいな・・・・と思っています。
このような、コンセプトがLaravel で設定できるでしょうか?
ご存知の方がいらっしゃったら教えて頂ければ幸いでございます。
宜しくお願いいたします
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
下記のような質問は推奨されていません。
- 質問になっていない投稿
- スパムや攻撃的な表現を用いた投稿
適切な質問に修正を依頼しましょう。
回答3件
2
ヘルパー関数作ればいいのでは。
作り方は検索すればいくらでもある。
Laravel内でも使ってるけど実現してる方法はフレームワークではなくcomposerレベルの話。
関数単位ではなくclassで作るとしてもcomposerなんだからどうにでもなる。
投稿2018/01/29 04:27
総合スコア10268
0
ベストアンサー
もしかしたらやりたいことが違うかもしれませんが、例えばappフォルダ内に「library」フォルダを作ったとします。その中にCommon.phpというファイルを作ってみます。
Common.php <?php namespace App\library; use Illuminate\Http\Request; class Common { public function add($a,$b) { $c = $a + $b; return $c; } }
Common.phpの中には共通したい処理を書きます。あとはこの処理をどうやってコントローラーから呼び出すかですね。
TestController <?php namespace App\Http\Controllers; use App\library\Common; class TestController extends Controller { protected $Common; public function __construct(Common $Common) { $this->Common = $Common; } public function test() { $a = 1; $b = 2; $data = $this->Common->add($a,$b); } }
こんな感じですね。この場合、$dataの中身は3になります。
ちなみにこれは、Laravel リポジトリパターンの実装を参考にしてます。
投稿2018/01/29 04:11

退会済みユーザー
総合スコア0
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
回答へのコメント
0
PHPのtrait
では代用できないですか?
http://php.net/manual/ja/language.oop5.traits.php
私は複数のコントローラで同じ処理がある場合、app/Libraryというフォルダを作り、そこにtrait用クラスを作成、コントローラ側でtraitのuseで取り込んでいます。
投稿2018/01/29 04:04
編集2018/01/29 04:06総合スコア9206
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
関連した質問
Q&A
受付中
インスタンスを使用して複数の商品の合計金額を出す方法について教えてください
回答2
クリップ0
更新
2023/06/05
Q&A
解決済
ボタンのcssが一部にしか効かない
回答2
クリップ0
更新
2023/05/06
Q&A
受付中
タブの切り替え時にふわっと表示させたい。
回答2
クリップ0
更新
2023/06/06
Q&A
解決済
ハンバーガーメニューの挙動について(transitionが、もとに戻る時には適応されない)
回答2
クリップ0
更新
2023/06/02
Q&A
解決済
htmlのformのsubmitが効かない
回答1
クリップ0
更新
2023/06/07
Q&A
解決済
Javaの外部ライブラリが使えない
回答1
クリップ0
更新
2023/05/30
Q&A
受付中
Java キーボードから入力を受け付ける命令
回答3
クリップ0
更新
2023/06/07
意見交換
受付中
いくつかのメソッドの大項目としてのコメントアウトをどう書くか
回答4
クリップ1
更新
2023/06/04
同じタグがついた質問を見る
Frameworkは、アプリケーションソフトを開発する際に、一般的な機能をより簡単に、より早く完了させる事を目的とした、ソフトウェアやライブラリのセットを指します。開発にフレームワークを使用する事で、追加で必要となる機能だけを開発するだけで済む為、開発効率の向上が見込めます。
LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。
PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。
Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。