## OLAS [Laravel 4.2 Docs](https://laravel.com/docs/4.2) [Laravel 4.2 API](https://devdocs.io/laravel~4.2/) [Learn Laravel](https://laracasts.com/series/laravel-from-scratch-2018) ### Setup Server requirements: - PHP 7.1 with [Composer](https://getcomposer.org/download/) - MCrypt PHP Extension Run `composer install` in the project's root directory. Run the application with `php artisan serve` or see the next section to run in an Apache server. #### Apache Create a virtualhost with the following settings: ``` DocumentRoot $PATH_TO_PROJECT_ROOT/public AllowOverride All Require all granted ``` ### Configuration Copy [`.env.php.sample`](.env.php.sample) to `.env.php` and replace with correct settings. Other options can be set in `app/config`. #### Environments The environment determines which configuration files will be used. Configuration options for each environment can be set in `app/config/$ENV`. Options within files in this directory overwrite those in `app/config` with the same file name. By default the application will use the `local` environment unless it's running with a **.edu** domain. This can be changed in [`bootstrap/start.php`](bootstrap/start.php) and more environments can be added here. ### Routes Routes tell the application to which controller the request will be sent or which view will be displayed. All routes must be registered in [`app/routes.php`](app/routes.php). ### Migrations Migrations are used to create the database and make any changes to the schema. Migrations are found in `app/database/migrations` and can be generated with `php artisan generate:migration $MIGRATION_NAME`. Each migration has an *up* function that performs the migration and a *down* function that reverses it. ### Views Views are the HTML structure for each page or section of a page. They use the blade templating engine. Views are found in `app/views`. ### Controllers Controllers handle requests and can return a View, Model, or some other data. They are found in `app/controllers` and usually correspond to a specific Model. Controllers are in charge of preparing any data that might be necessary for a View, or it might create or update new entries for a Model. Data can be sent to a View in an array of variables.