Cài đặt composer
Laravel sử dụng composer để quản lý các thư viện phụ thuộc. Vì vậy trước khi sử dụng Laravel chúng ta cần đảm bảo composer đã được cài đặt.
Cài đặt composer có 2 cách:
- Cài đặt tự động: Tải về và cài đặt composer tại https://getcomposer.org/
- Cài đặt thủ công
Download file theo link phía trên và thực hiện cài đặt như sau:
Click vào file vừa download, màn hình sẽ xuất hiện giao diện như hình bên dưới. Click next để tiếp tục cài đặt.
Giữ mặc định để chọn folder cài đặt và tiếp tục click ‘Next’
Chọn khu vực chứa file chạy PHP và tiếp tục click ‘Next’.
Phần setting Proxy bỏ trống và tiếp tục Click "Next".
Xem lại thông tin lựa chọn lần cuối rồi tiếp tục click ‘Install’ để cài đặt.
Bảng thông tin hướng dẫn , tiếp tục click ‘Next’.
Tới đây là kết thúc quá trình cài đặt, click ‘Finish’ để kết thúc.
Cài đặt Laravel Framework
Chúng ta có thể cài đặt Laravel theo 2 cách:
Thông qua Laravel Installer:
Mở terminal và gõ dòng lệnh
composer global require
"laravel/installer"
Sau khi cài đặt xong chúng ta tiếp tục mở terminal trong thư mục htdocs của XAMPP và gõ dòng lệnh
laravel new blog
với “Blog” là tên project muốn tạo
Thông qua Composer:
Chúng ta di chuyển thẳng vào thư mục “htdocs” của XAMPP, mở của sổ dòng lệnh và gõ dòng lệnh sau:
composer create-project --prefer-dist laravel/laravel
blog
với
“blog” là tên project muốn tạo.
Mô hình MVC trong Framwork
Như chúng ta đã biết MVC chính là viết tắt của Model – View – Controller
- Model: cấu trúc dữ liệu theo cách tin cậy và chuẩn bị dữ liệu theo lệnh của controller
- View: Hiển thị dữ liệu cho người dùng dựa theo hành động của người dùng
- Controller: Nhận lệnh từ người dùng, gửi lệnh đến cho Model để cập nhật dữ liệu, truyền lệnh đế View để cập nhật giao diện người dùng
Và Framework Laravel chúng ta đang tìm hiểu ở đây tất nhiên cũng dựa trên cơ sở của mô hình MVC.
Với Laravel, mọi “request” từ phía người dùng đều phải đi qua “Route”, và qua “Route” dữ liệu sẽ được gửi cho “Controller” để tiến hành xử lý, “Controller” sẽ xử dụng dữ liệu lấy được từ “Model” hoặc cập nhật dữ liệu đến “Model”, kết quả trả về từ “Controller” sẽ được gửi lại về “View” và hiển thị ra phía người sử dụng.
Bỏ public trên URL Laravel
Trước khi vào vấn đề chính là bỏ “/public” trên URL, chúng ta cần nắm rõ được 1 số vấn đề liên quan đến nó.
Điều đầu tiên chúng ta nói đế ở đây đó là tại sao “/public” lại xuất hiện ở trên URL
Trong thư mục public của Laravel, ngoài các file liên quan đến image, js, css, ... ta còn có 1 file quan trọng khác đó là “index.php”. Và đây chính là file tiếp nhận request trong chu trình xử lý của Laravel.
Và như thế thì chúng ta lại tiếp tục có thêm một vài vấn đề liên quan đáng để tìm hiểu đó là tại sao nó lại nằm trong “public” mà không phải nơi khác ví dụ như “root”.
Lý do chính là vì vấn đề bảo mật, nằm trong “public” sẽ đảm bảo ngăn chặn được các hành động truy cập trực tiếp đến cái file quan trọng như “.env”.
Vậy nếu chúng ta muốn xóa “/public” để đường dẫn nhìn thân thiện hơn thì sao. Một số nguồn cho chúng ta cách làm như sau:
- Đổi tên “server.php” trong thư mục gốc của Laravel thành “index.php”
- Sao chép “.htaccess” từ /public vào thư mục gốc của Laravel.
Cách làm này có vẻ sẽ thật sự làm mất đi “/public” trên URL nhưng nó lại mang đến vấn đề mà chúng ta vừa bàn luận ở trên đó là nó sẽ làm mất đi sự an toàn cho dự án và “.env” sẽ không còn được bảo mật.
Có một cách làm khác có vẻ được đánh giá tốt và an toàn bằng cách thêm “.htaccess” và thư mục gốc với nội dung sau:
Các file và thư mục quan trọng trong Laravel
- “app” là thư mục chứa các file cấu hình, lưu trữ, tập lệnh của Laravel.
- Trong này bao gồm cả các thư mục models, views, controllers
- Middleware: chứa các tập tin lọc và ngăn chặn các request
- Config: chứa các file liên quan đến app, database và mail.
- Public: chứa các resources của project như js, css, img,....
- Resources: chứa các file view blade,...
- Routes: chứa các file điều hướng
- File chứa những biến hệ thống: .env, conposer.json
Thư mục app
Nơi đây sẽ là nơi viết các phần quan trọng của chương trình như các controller, model, v.v…
Trong đó:
- Console: là nơi chứa tất cả các code artisan
- Exceptions: là nơi chứa các exception trong chương trình
- Http: là nơi chứa các Controller, Middleware
- Providers: là nơi chứa các Class Service Providers
Thư mục Database
Đây là nơi chứa các class liên quan đến database như tạo, cập nhật bảng, thêm nội dung vào các bảng.
Trong đó:
-
factories: là nơi chứa các class sản xuất
-
migrations: là nơi chứa các class tạo, cập nhật cấu trúc các bảng
-
seeds: là nơi chứa các class thêm dữ liệu vào các bảng