Tự học lập trình Laravel
Contents
Giới thiệu về Laravel
Laravel là mộtPHP framework mã nguồn mở và miễn phí, được phát triển bởi Taylor Otwell và nhắm vào mục tiêu hỗ trợ phát triển các ứng dụng web theo kiếm trúc model-view-controller (MVC). Những tính năng nổi bật của Laravel bao gồm cú pháp dễ hiểu – rõ ràng, một hệ thống đóng gói modular và quản lý gói phụ thuộc, nhiều cách khác nhau để truy cập vào các cơ sở dữ liệu quan hệ,nhiều tiện ích khác nhau hỗ trợ việc triển khai vào bảo trì ứng dụng.
Vào khoảng tháng 3 năm 2015, các lập trình viên đã có một cuộc bình chọn PHP framework phổ biến nhất, Laravel đã giành vị trí quán quân cho PHP framework phổ biến nhất năm 2015, theo sau lần lượt là Symfony2, Nette, CodeIgniter, Yii2 vào một số khác:
Laravel được phát hành theo giấy phép MIT, với source code được lưu trữ tại Github.
Dưới đây là 06 lý do nên sử dụng Laravel:
- Quick Emergence: Sự ra đời của Laravel như một luồng gió mới thổi vào cộng đồng framework PHP. Nó có thể giải quyết tốt những web project lớn. Rất nhiều công ty đã sử dụng nó để phát triển các sản phẩm cho công ty của họ. Như hình bên trên bạn có thể nhìn thấy nó chiếm phần lớn nhất trong "miếng bánh" framework PHP.
- Open Source: Nó là mã nguồn mở và hoàn toàn free. Bạn chẳng phải quan tâm đến việc trả phí khi ứng dụng web của bạn to lên. Điều bạn cần làm là hiểu nó và tạo ra những tính năng tuyệt vời từ nó mà thôi.
- Templete engine: Nó sử dụng Blade template và các công cụ như Elixir giúp bạn dễ dàng quản lý các assets (biên dịch, ghép nối, nén ...), cũng như chia nhỏ code HTML ra thành nhiều phần. Giúp cho việc thiết kế cũng như quản lý các assets trở nên vô cùng đơn giản.
- Modular: Laravel được xây dựng dựa trên hơn 20 thư viện khác nhau. Hiểu được cách thiết kế framework khiến các dev hoàn toàn có thể đóng góp cho framework cũng như mở rộng chúng một cách dễ dàng. Dễ hiểu khi Laravel luôn có cộng đồng support đông đảo và "trâu" như vậy.
- MVC Architecture Support: Laravel sử dụng MVC pattern để xây dựng framework. Nó đảm bảo rằng các code được trình bày logic và hợp lý. Dễ dàng để có thể hiểu được nó. Vì vậy nó làm cho web project của bạn được trở nên dễ quản lý cũng như phát triển rất rất nhiều.
- Libraries and configuration: Laravel tạo điều kiện cho các developer có thể thay đổi tùy chọn và cấu hình để phù hợp với nhiều môi trường. Các developer cũng có thể viết các gói (package) có thể là một tính năng hay một đoạn code gì đó. Nó dễ dàng được khai báo trong Laravel thông qua các provider. Chính điều này cộng với số lượng các developer đông đảo thì số lượng package mà Laravel có ngày càng tăng lên. Bạn có thể dễ dàng tìm được một vài đoạn code cũng như một vài tính năng mà bạn mong muốn trong project của bạn chỉ trong vài phút. Nó tiết kiệm hơn so với việc phải ngồi viết code cho tính năng đó.
Tài liệu Laravel trên mạng rất nhiều, bạn rất dễ dàng tìm kiếm và áp dụng. Hiện tại tôi đang cần xây dựng website để thực hiện một ý tưởng của mình, sau một thời gian lựa chọn xem sử dụng Java => Chọn PHP vì triển khai đơn giản và chi phí thấp. Sau khi chọn PHP, tôi tìm hiểu các PHP Framework và quyết định chọn Laravel bởi các ưu điểm ở phần đầu. Bài viết này chủ yếu lưu lại tri thức đã tìm hiểu được và áp dụng cho dự án của mình.
Hướng dẫn cài đặt (Chi tiết trên Ubuntu 16.04)
Để cài đặt và chạy Laravel, về cơ bản bạn thực hiện 02 bước như sau:
- B1: Cài đặt XAMPP: [1]. Cài xong bạn sẽ có cả Apache/PHP/MySQL. Ngoài ra một số người sử dụng OpenServer, nói chung mọi người quen cái nào thì dùng cái đó.
- B2: Cài Composer: [2]
- B3: Cài đặt Laravel: [3]
Theo các hướng dẫn từ các link trên, bạn có thể dễ dàng thực hiện cài đặt trên bất cứ môi trường nào.
Ở đây tôi dùng Ubuntu 16.04 nên sẽ hướng dẫn cách cài đặt trên môi trường này.
Cài đặt XAMPP
Lệnh sau để cài đặt XAMPP:
wget https://www.apachefriends.org/xampp-files/7.1.9/xampp-linux-x64-7.1.9-0-installer.run
chmod +x xampp-linux-x64-7.1.9-0-installer.run
sudo ./xampp-linux-x64-7.1.9-0-installer.run
Giao diện cài đặt xuất hiện, bạn cứ nhấn Next là xong. Sau khi cài đặt xong, bạn chạy thêm lệnh sau:
echo 'export PATH="$PATH:/opt/lampp/bin"' >> ~/.bashrc
Lệnh trên này giúp cập nhật biến môi trường PATH mỗi khi bạn bật Terminal => Việc này giúp bạn sử dụng các lệnh như php,... đơn giản không cần có đường dẫn ở trước.
Sau khi cài đặt xong, bạn tắt bằng lệnh:
sudo /opt/lampp/lampp stop
Bật bằng lệnh:
sudo /opt/lampp/lampp start
Sau khi bật, mở trình duyệt vào địa chỉ http://localhost/xampp/ để kiểm tra.
Cài đặt Composer
Sau khi cài đặt XAMPP theo hướng dẫn ở trên, bạn tắt Terminal và bật lại để biến môi trường PATH được cập nhật lại. Sau đó, bạn đánh các lệnh sau để cài đặt Composer:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('SHA384', 'composer-setup.php') === '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
sudo mv composer.phar /usr/local/bin/composer
Cài đặt Laravel
Bạn sử dụng lệnh sau:
composer global require "laravel/installer"
Tạo project từ Laravel Framework
Để tạo project từ Laravel, bạn sử dụng Composer. Ví dụ, bạn cần tạo project blog từ Laravel, bạn đánh lệnh sau:
composer create-project --prefer-dist laravel/laravel blog
Lệnh này sẽ lấy toàn bộ source của laravel về để trong thư mục blog.
Bây giờ làm sao chạy được blog khi mà blog không được đặt trong thư mục /opt/lampp/htdocs. Chẳng lẽ phải thực hiện copy vào thư mục này => Việc này là không cần thiết, mà bạn chỉ cần cấu hình Virtual-Host cho XAMPP là được. Đầu tiên bạn mở tệp /opt/lampp/etc/httpd.conf, tìm dòng:
# Virtual hosts
#Include etc/extra/httpd-vhosts.conf
Bạn bỏ comment dòng Include đi thành:
# Virtual hosts
Include etc/extra/httpd-vhosts.conf
Sau đó sửa tệp /opt/lampp/etc/extra/httpd-vhosts.conf như dưới (Các nội dung cũ nếu có comment lại):
<VirtualHost *:80>
ServerAdmin localhost
DocumentRoot "/opt/lampp/htdocs"
ServerName localhost
</VirtualHost>
<VirtualHost *:80>
ServerAdmin blog
DocumentRoot "/home/ubuntu/work/workspace/web/blog"
ServerName blog.com
ErrorLog "logs/blog.com-error_log"
CustomLog "logs/blog.com-access_log" common
<Directory "/home/ubuntu/work/workspace/web/blog">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>
</VirtualHost>
Ghi chú:
- Bạn có thể cấu hình nhiều VirtualHost khác nhau, mỗi VirtualHost trở tới một thư mục chứa một project web của bạn.
- Port sử dụng trong khai báo VirtualHost phải trùng với port Listen của Web Server. Nếu bạn thay đổi port này, thì phải sửa port Virtual tương ứng.
Tiếp đó bạn mở tệp /etc/hosts thêm vào cuối hai dòng:
127.0.0.1 localhost 127.0.0.1 blog.com
Ghi chú: Mỗi VirtualHost bạn phải add thêm một dòng vào tệp này.
Bây giờ, bạn mở trình duyệt nhập thử từng domain, bạn sẽ thấy trình duyệt hiện thị đúng website tương ứng các thư mục theo cấu hình: