bradsi
6/25/2019 - 2:44 PM

Project Directory Structure Review

Laravel Project Directory Structure Review

Laravel Directory Structure Review


Base Files in Project Root


.editorconfig
    Can be deleted, simply tells editors/IDEs what formatting you like

.env
    Where important config details are stored e.g. database details (never commit to git)

.env.example
    Example of env file

.gitattributes
    Tells git how you want things to be stored - not important

.gitignore
    Define which files and directories should be ignored from git

artisan
    File that is triggered when you run php artisan

composer.json
    Config file that specifies all dependencies

composer.lock
    Locks dependencies to specific versions to ensure consistency (should be commited to git)

package.json
    Helps with front-end compilation

phpunit.xml
    Not covered

server.xml
    Not covered

webpack.mix.js
    Wrapper around webpack, makes front-end compilation easier

yarn.lock
    Similar to composer.lock

Directories


/vendor
    Where all composer dependencies will be installed

/tests
    Any tests that you write will go here

/storage
    Home for various stage files e.g. logs

/routes
    Where routes are stored

/resources
    Where views, css, sass/less, and js is stored i.e. anything that needs to be compiled

/public
    Compiled files i.e. images, compiled js/css etc.

/database
    Stores migrations, factories, and seeds

/config
    Various config

/bootstrap
    How the framework boots itself, can mostly be ignored

/app
    The place where your app lives - models, controllers