# Laravel - A Clean & Classy PHP Framework ## Introduction Laravel is a clean and classy framework for PHP web development. Freeing you from spaghetti code, Laravel helps you create wonderful applications using simple, expressive syntax. Development should be a creative experience that you enjoy, not something that is painful. Enjoy the fresh air. ## Table Of Contents ### Getting Started - Requirements & Installation - Basic Configuration - Routes - Views & Responses - Generating URLs - Generating HTML - Errors & Logs ### Input - Retrieving Input - Cookies - Validation - Building Forms ### Database - Configuration - Usage - Fluent Query Builder - Eloquent ORM ### Caching - Configuration - Usage ### Sessions - Configuration - Usage ### Authentication - Configuration - Usage ### Other Topics - Localization - Encryption ## Requirements & Installation ### Requirements - Apache, nginx, or another compatible web server. - PHP 5.3+ (which supports namespaces, closures, etc.) ### Installation 1. Download Laravel 2. Extract the Laravel archive and upload the contents to your web server. 3. Set the URL of your application in the **application/config/application.php** file. 4. Navigate to your application in a web browser. If all is well, you should see a pretty Laravel splash page. Get ready, there is lots more to learn! ### Extras Installaing the following goodies will help you take full advantage of Laravel, but they are not required: - SQLite, MySQL, or PostgreSQL PDO drivers. - Memcached or APC. ### Problems? - Make sure the **public** directory is the document root of your web server. - If you are using mod\_rewrite, set the **index** option in **application/config/application.php** to an empty string. [Back To Top](#top) ## Basic Configuration ### Quick Start When starting a new project, you shouldn't be bombarded with loads of confusing configuration decisions. For that reason, Laravel is intelligently configured out of the box. The **application/config/application.php** file contains the basic configuration options for your application. There is only one option that **must** be set when starting a new application. Laravel needs to know the URL you will use to access your application. Simply set the url in the **application/config/application.php** file: 'url' => 'http://localhost'; > **Note:** If you are using mod_rewrite for cleaner URLs, you should set the index option to an empty string. ### Cleaner URLs Most likely, you do not want your application URLs to contain "index.php". You can remove it using HTTP rewrite rules. If you are using Apache to serve your application, make sure to enable mod_rewrite and create a **.htaccess** file like this one in your **public** directory: RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L] Is the .htaccess file above not working for you? Try this one: Options +FollowSymLinks RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . index.php [L] After setting up HTTP rewriting, you should set the **index** configuration option in **application/config/application.php** to an empty string. > **Note:** Each web server has a different method of doing HTTP rewrites, and may require a slightly different .htaccess file.