*

Laravelでクラスをnewする

公開日: : 投稿者:raru php, web技術

今回はLaravelでのクラスのnewの仕方です。
正確には、Laravelでの他ファイルで作成したClassの読み込み方です。
通常phpではrequireを利用しますが、たぶんLaravelではそれは美しくないと思われている(と僕が勝手に思っている)。

どうやらautoloadという仕組みがあるらしく、それによってrequireを宣言せずにクラスを自動で使えるようにしてくれるみたいです。

composer.jsonに追記する

今回私は/app/models/viewmodelsというフォルダを新規に作成して、その中に新しいクラスを作成しました。
そしてこのクラスをコントローラでnewしたいのですが、上手くできません。

そこでautoloadでのload対象設定を記述してあるcomposer.jsonを修正します。
今回は以下のように修正します。

"autoload": {
        "classmap": [
        "app/commands",
        "app/controllers",
        "app/models",
        "app/models/viewmodels",
        "app/database/migrations",
        "app/database/seeds",
        "app/tests/TestCase.php"
    ]
}

app/models/viewmodelsが追加されています。

またjsonを更新したら以下のコマンドを/app直下で実行しましょう。
/app直下というよりは、composer.jsonがある場所ですね。

composer dump-autoload

これでautoloadが更新され、viewmodels内のクラスも利用することができるようになりました。

ちなみにこのとき/app/vendor/composer/autoload_classmap.phpが更新されています。

global.phpの編集

もし上記だけで動かなかったら、こちらも修正してみてください。

/app/start/global.php

ClassLoader::addDirectories(array(
    app_path().'/commands',
    app_path().'/controllers',
    app_path().'/models',
    app_path().'/models/viewmodels',
    app_path().'/database/seeds',
));

これでできるかと思います。
基本的にはこっちはlaravelそのもので設定する方法になります。

composerではautoloadというモジュールを利用しているという感じでしょう。

関連記事

no image

Facebookから日本語でデータ取得 (※だたしlocationは除く

Facebook Graph APIを通して取得したデータがローマ字や英語で困ることがあります。

記事を読む

no image

WebRTC + Node によるルーム機能付きビデオチャット 2

前回の続き こちらは前回の記事の続きになります。 また前回の記事にコメントを頂いたのですが、

記事を読む

no image

IEとchromeでbeforeunloadをaタグのhrefに反応させずに利用……できなかった

今回beforeunloadが面倒な動きをしていたので調査&ある程度都合よくしてみました。 してみ

記事を読む

no image

Facebook APIを試してみました

Facebook APIが気になったのでちょっと試してみました。 まず私が勘違いしていたこと

記事を読む

no image

Javascript パターン

最近更新を行なえるほど技術を追っていませんが、日々の電車での移動時間に本を読んでいます。 2駅乗っ

記事を読む

no image

PHPのcURLを利用してAPIをGET/POSTで叩く

PHPからcURLを利用してhttpのget, postで問い合わせを行ってみます。 今回はYAH

記事を読む

no image

PHPでXMLをnamespaceを利用したxpathでnode取得

PHPでxmlを読み込んでxpathでnodeを取得して見たいと思います。 今回はyahooの形態

記事を読む

no image

WebRTC + Node によるルーム機能付きビデオチャット 1

現在googleで調べても日本語では微妙にかゆいところに手が届かないWebRTCと Socket.

記事を読む

no image

システムの仕様書を作れそうなウェブアプリ

現在サービス開発を本気で取り組もうと思っているraruです。 本気が指すところは、事業として成立す

記事を読む

no image

MAMPでLaravelを動作させる

先日laravelをMAMPのhtdocsに配置しましたが、当然それでは動かなかったので設定しました

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

PAGE TOP ↑