実践Laravel 基本編1 構造

Posted: 2014-05-26 01:01 |  laravel 
これからLaravelを使って開発する方、または選択肢に入れられている方等に向けて、
各種機能や使い方、開発手法をご紹介します。
既にLaravel4をインストールしてある事が前提となります。

Laravelは日本ではMVCフレームワークとして広まっている感がありますが、
実際には構造や、開発手法など必ずしもMVCの範疇に納めようとしなくて構いません。

■ディレクトリ構造

■プロジェクト直下

デフォルトでは以下のような構造になっています。

/app アプリケーション実装ディレクトリ
artisan CLI (アーティザン)
/bootstrap フレームワーク環境関連、設定等が読み込まれます
composer.json composer
phpunit.xml phpunit
/public 公開ディレクトリ
server.php ビルトインサーバ
プロジェクト直下は上記のような構成になっています。
公開ディレクトリをpublicからhtdocs等に変更したい場合は、
	'public' => __DIR__.'/../public',

	'base' => __DIR__.'/..',

	'storage' => __DIR__.'/../app/storage',
publicの箇所を __DIR__ . '/../htdocs' 等に変更してください。
またアプリケーションのベースのディレクトリや、ストレージ関連のディレクトリも変更できます。
これらを変更した場合は、composer.jsonに記載されているautoloadのパスを変更してください。
"autoload": {
    "classmap": [
        "app/commands",
        "app/controllers",
        "app/models",
        "app/extensions",
        "app/database/migrations",
        "app/database/seeds",
        "app/tests/TestCase.php"
    ]
},

ほか、ディレクトリを追加して、オートローダに登録する場合は、
classmapに対象のディレクトリなどを追加します。
app/配下にlibディレクトリを追加した場合は、以下のように追記します。

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

追加後は、

$ composer dump-autoload

を必ず実行してください。

■app配下

実際に実装を進めていく上で、開発のメインとなるディレクトリです。
こちらも便宜上ディレクトリ分けされていますが、
必ずしもこの通りにしなければならない、という構成ではありません。
デフォルトの場合、autoloadはclassmapで指定されていますが、
PSR-0, PSR-1, PSR-2, PSR-4等に変更できます。
こちらに変更する事で、クラス追加時に実行する composer dump-autoloadを省く事ができます。

commands artisanコマンド実装ディレクトリ
config コンフィグディレクトリ
controllers コントローラー
database マイグレート、構築時に挿入されるデータ等
filters.php フィルター(認証など)
lang 多言語対応言語ファイルなど
models モデル
routes.php ルーターファイル
start アプリケーション起動時に読み込まれるものや、フレームワークの動作を決定するようなディレクトリ
storage ストレージディレクトリ
tests テストディレクトリ
views ビュー

上記のディレクトリもほとんどが入れ替え等が可能です。
commands, controllers, databaseやmodelsなどはpsr系にする事で、
namespaceをベンダー名やプロジェクト名で管理できる様になり、
前述したようにdump-autoloadが不要となりますので、
複数人で開発する場合等でディレクトリ管理などのトラブルがなくなると思います。

■コーディング規約に従う(PSR)

以下の様な構成でPSR-4等に対応させる事もできます。

App(プロジェクト名など)
config
lang
start
storage
tests
view

filters.php
routes.php
この場合、composer.jsonを下記のように追加します。
    "autoload": {
        "psr-4": {
            "App\\": "app/App"
        }
    },
またapp/start/global.phpにあるClass Loaderも、PSRに準拠した場合は不要なものを削除しましょう。
ClassLoader::addDirectories([
]);
modelsやcontrollersなどは、app/App配下で実装していく事となります。

Laravel4の基本構造は以上となります。
ほとんどが入れ替え可能、また追加などが可能ですので、
気軽に開発しやすい構造等に変更してみてください。

about ytake

執筆に参加しています


Laravel お役立ち情報

share



このエントリーをはてなブックマークに追加

Categories

laravel 45

DTM 0

music 0

PHP全般 31

0

JAPAN 1

WORLD 1

javascript 4

RDBMS 1

NoSQL 1

NewSQL 1

Recent Posts

Ad

comments powered by Disqus

GitHub

Social Links

Author


クリエイティブ・コモンズ・ライセンス
Yuuki Takezawa 作『Ytake Blog』はクリエイティブ・コモンズ 表示 - 非営利 4.0 国際 ライセンス で提供されています。

© ytake/comnect All Rights Reserved. 2014