0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Laravel初心者がLaravelでテストコードを書くまでの勉強メモ(ディレクトリ構造の確認)

0
Posted at

背景

  • インストールはできたもののアプリケーションを作るためにどのようなファイル配置になっているか
  • テストコードを含め、どこに何を書けばいいのか

    などの理解が必要そう

ディレクトリ構造

前記事で

composer create-project --prefer-dist laravel/laravel hoge

を実行してできたhogeというディレクトリを除くと以下のようになっていた。
(laravel v5.8.17)

.editorconfig
.env
.env.example
.gitattributes
.gitignore
.styleci.yml
app
artisan
bootstrap
composer.json
composer.lock
config
database
package.json
phpunit.xml
public
readme.md
resources
routes
server.php
storage
tests
vendor
webpack.mix.js

上記のうち、

  • app
  • bootstrap
  • config
  • database
  • public
  • resources
  • routes
  • storage
  • tests
  • vendor

がディレクトリで、その他設定ファイルやスクリプト、READMEで構成されている。
各ディレクトリの(ざっくりの)役割は以下の通り。
参考:Laravel 5.8 ディレクトリ構造

ディレクトリ名 役割
app アプリケーションのコアコード置き場
bootstrap アプリケーションの初期処理を行うファイル、及びキャッシュ置き場
config アプリケーションに関する設定ファイル置き場
database DB操作に関するファイル置き場
(例:マイグレーション、初期値設定ファイルなど)
public index.phpやjs,css,画像など公開用のファイル置き場
resources ビュー、コンパイル前のLESS、SASS、JavaScript、言語ファイル置き場
routes ブラウザやAPIなどによるアクセスに対してのルートを設定するファイル置き場
storage フレームワークにより生成されるファイル
(例:コンパイルされたBladeテンプレート、ファイルベースのセッション、ファイルキャッシュ)
置き場
tests 自動テスト置き場
vendor Composerによる依存パッケージ置き場

.env

環境設定ファイル。
DBやAWS関連の情報等の接続情報を記載する。
※外部に漏れると完全にアウトなので、このファイルは必ずバージョン管理の対象外にする

artisan

Laravel専用のコマンドで、LaravelのControllerやModelのひな形の作成、マイグレーションの実行、サーバーの起動などいろいろやってくれる

試しに、、、

Laravelインストール後、

php artisan serve

をしてhttp://localhost:8000 にアクセス後表示される初期画面のビューファイルを探して編集を試みる。

まずはブラウザでのアクセス時のルートをチェックするために、
routesディレクトリ内にあるweb.phpをのぞいてみる。


<?php
Route::get('/', function () {
    return view('welcome');
});

なるほど、welcomeというviewを見ればいいらしいので、
resources/viewsディレクトリ内を見てみるとwelcome.blade.phpというのを発見。
(「welcome.blade.php?welcome.phpじゃないのか、、、」となったので調べてみた。
Laravelではbladeというテンプレートエンジンを使って、ビューファイルからHTMLを生成している。そのため.blade.phpという拡張子になっているとのこと。)

welcome.blade.phpをのぞいてみる。


<!doctype html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
    <head>
・
・
・
    <body>
        <div class="flex-center position-ref full-height">
            @if (Route::has('login'))
                <div class="top-right links">
                    @auth
                        <a href="{{ url('/home') }}">Home</a>
                    @else
                        <a href="{{ route('login') }}">Login</a>

                        @if (Route::has('register'))
                            <a href="{{ route('register') }}">Register</a>
                        @endif
                    @endauth
                </div>
            @endif

            <div class="content">
                <div class="title m-b-md">
                    Laravel
                </div>

                <div class="links">
                    <a href="https://laravel.com/docs">Docs</a>
                    <a href="https://laracasts.com">Laracasts</a>
                    <a href="https://laravel-news.com">News</a>
                    <a href="https://blog.laravel.com">Blog</a>
                    <a href="https://nova.laravel.com">Nova</a>
                    <a href="https://forge.laravel.com">Forge</a>
                    <a href="https://github.com/laravel/laravel">GitHub</a>
                </div>
            </div>
        </div>
    </body>
</html>

おー、あったあった、試しに「Laravel」を「hoge」に書き換えると、
hoge.JPG
\(変わった!)/

testsディレクトリに自作の自動テストをぶちこむ未来のために、
環境設定等の準備などについて学習し、次記事にまとめる。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?