*

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

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

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

記事を読む

no image

socket.ioとwebRTCでビデオチャット

現在作成したいものがあるために、その予行演習として nodeのsocket.ioとwebRTC機能

記事を読む

no image

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

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

記事を読む

no image

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

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

記事を読む

no image

Facebook APIを試してみました

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

記事を読む

no image

Javascript パターン

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

記事を読む

no image

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

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

記事を読む

no image

Mac OS X (Yosemite) にLaravelをインストール

Max OS 10.10(yosemite)にPHPフレームワークのLaravelをインストールして

記事を読む

no image

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

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

記事を読む

no image

Laravelでルーティングからview表示をしてみる

Laravelでのroutes.phpの設定と、bladeを利用してview表示を行います。 いろ

記事を読む

Message

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

PAGE TOP ↑