12/08/2018, 15:32

Beginning Laravel Part 1

Laravel 5.4 tutorial part 1 Ở phần đầu tiên này chúng ta sẽ tìm hiểu về cách cài đặt, cấu hình, cấu trúc của project laravel, các lý thuyết về kiến trúc laravel. Cài đặt Xampp: Xampp là chương trình tạo máy chủ Web (Web Server) được tích hợp sẵn Apache, PHP, MySQL, FTP Server, Mail Server và ...

Laravel 5.4 tutorial part 1 Ở phần đầu tiên này chúng ta sẽ tìm hiểu về cách cài đặt, cấu hình, cấu trúc của project laravel, các lý thuyết về kiến trúc laravel.

Cài đặt Xampp:

Xampp là chương trình tạo máy chủ Web (Web Server) được tích hợp sẵn Apache, PHP, MySQL, FTP Server, Mail Server và các công cụ như phpMyAdmin. Không như Appserv, Xampp có chương trình quản lý khá tiện lợi, cho phép chủ động bật tắt hoặc khởi động lại các dịch vụ máy chủ bất kỳ lúc nào. Ta có thể donwload và cài đặt Xampp bằng link sau: Xampp Download

Cài đặt Laravel:

Để cài đặt được Laravel server cần có cầu hình đạt các yêu cầu sau:

  • PHP >= 5.6.4
  • OpenSSL PHP Extension
  • PDO PHP Extension
  • Mbstring PHP Extension
  • Tokenizer PHP Extension
  • XML PHP Extension Ta cần chọn bản Xampp ở trên phù hợp với yêu cầu của Laravel, hoặc khi thuê host, server cũng sẽ phải check các thông số này xem có đủ yêu cầu với bản Laravel mà mình cài đặt hay ko.

Có 2 cách để cài đặt Laravel:

  • Cài đặt qua Laravel Installer:
    • Đầu tiên ta cần cài đặt Composer sử dụng lệnh sau: composer global require "laravel/installer"
    • Sau đó dùng lệnh laravel new để tạo 1 project laravel mới: laravel new blog
  • Cài đặt qua composer: composer create-project --prefer-dist laravel/laravel blog

Local development server:

Để chạy project ta cần chạy server tại http://localhost:8000, sử dụng câu lệnh sau tại thư mục blog của project laravel vừa tạo : php artisan serve

Public Directory

Sau khi cài đặt xong Laravel, ta nên cấu hình webserver tới thư mục public, file index.php trong thư mục này đóng vai trò như controller điều khiển tất cả các http requests tới server.

Configuration Files

Tất cả các file cấu hình của Laravel framework được đặt trong thư mục config. Tất cả đều có tài liệu, ta có thể vọc thêm tìm hiểu thêm các option này trong project.

Directory Permissions

Sau khi cài Laravel, chúng ta có thể cần cài đặt 1 vài permissions. thư mục bên trong storage và bootstrap/cache cần set writable bởi webserver nếu ko Laravel sẽ ko chạy dược.

Application Key

Sau khi cài đặt Laravel ta cần set application key bởi 1 chuỗi string random gồm 32 kí tự, tuy nhiên nếu ta cài Laravel bằng Composer hoặc Laravel installer thì key này sẽ được tạo ra sẵn bởi lệnh php artisan key:generate

Additional Configuration

config/app.php: timezone, locale Cache Database Session

Web Server Configuration

Có thể cấu hình để tạo pretty Urls.

Root Directory

The app Directory

Thư mục app bao gồm các code chính của ứng dụng. Hầu hết các class của ứng dụng đều nằm ở trong thư mục này.

The bootstrap Directory

Thư mục bootstrap bao gồm các files để khởi động các framework và cấu hình autoloading. Thư mục này cũng chứa 1 thư mục cache chứa các framework tạo ra các files để tăng hiệu năng như các route files, services cache files.

The config Directory

Thư mục config gồm tất cả các file cấu hình của ứng dụng.

The database Directory

Thư mục database chứa database migration và seeds.

The public Directory

Thư mục public chứa file index.php, đây là entry point cho tất cả các request tới ứng dụng, thư mục này cũng chứa các assets như images, js, css.

The resources Directory

Thư mục này chứa các un-compiled assets như LESS, SASS, Js, language files.

The routes Directory

Thư mục routes chứa tất cả các định nghĩa định tuyến trong ứng dụng. Mặc định Laravel sẽ tạo ra 1 số route files: web.php, api.php, console.php, channels.php. File web.php bao gồm các routes mà RouteServiceProvider đặt trong web middleware group cái mà cung cấp sesson state, CSRF protection, cookie encryption. Nếu ứng dụng ko sử dụng RESTfull API thì tất cả các routes đều được định nghĩa trong file web.php File api.php chứa các routes mà RouteServiceProvider đặt trong api middleware group cái mà cung cấp rate limitting. File console.php File channels.php là nơi để đăng ký tất cả các event broadcasting channels mà ứng dụng hỗ trợ.

The storage Directory

Thư mục storage gồm cái compile Blade templates, file based sessions, file caches, và các files khác được tạo ra bởi framework. Thư mục này được tách ra với thư mục app, framework và logs. Thư mục này dùng để lưu trữ bất kì files nào được tạo ra bởi ứng dụng.
Thư mục log chứa các log file của ứng dụng. Thư mục storagae/app/public có thể được sử dụng để lưu trữ các files mà user tạo ra như profile avatars, có thể truy cập public.

The tests Directory

Chứa các test files. Mỗi class nên được đặt tiền tố Test. Có thể chạy test bằng câu lệnh phpunit hoặc php vender/bin/phpunit

The vendor Directory

Thư mục này để chứa các Composer dependencies.

App Directory

The Console Directory

Thư mục console chứa tất cả các câu lệnh custom Artisan cho ứng dụng. Các câu lệnh này có thể được tạo ra bằng cách sử dụng câu lệnh make:command. Thư mục này cũng chứa các console kernel.

The Events Directory

Thư mục này mặc định ko được tạo ra, nhưng sẽ được tạo ra khi chạy câu lệnh event:generate và make:event Artisan. Thư mục này chứa tất cả các event classes dùng để alert các phần khác của ứng dụng

The Exceptions Directory

Chứa các exception handler của ứng dụng.

The Http Directory

Thư mục này chứa controllers, middleware, và form requests. Hầu hết các logic xử lý các request tới ứng dụng được đặt trong thư mục này.

The Jobs Directory

Tạo ra khi dùng câu lệnh make:job Artisan.

The Listeners Directory

Tạo ra khi gọi câu lệnh make:listener Artisan

The Mail Directory

Tạo ra khi gọi câu lệnh make:mail Artisan. Thư mục này chứa tất cả các classes mà thao tác với việc gửi mail bởi ứng dụng.

Ở phần 1 này chúng ta đã tìm hiểu các cài đặt laravel, cấu trúc ứng dụng laravel. Phần tiếp theo chúng ta sẽ tìm hiểu về vòng đời, các basics của laravel: routing, middleware, csrf protection, controllers, requests, responses, views, session, validation, errors & logging

0