Laravel 5 Doc
-
Upload
tung-truong-thanh -
Category
Documents
-
view
60 -
download
3
description
Transcript of Laravel 5 Doc
HƯỚNG DẪN LARAVEL 5
1. Câu lệnh DOS
http://acbtinhco.com/thu-thuat-may-tinh/quan-tri-mang/kham-pha-file-cmdbat-phan-1-
tong-hop-cac-lenh-command-cmd-thong-dung-va-huu-ich/
Command line Description
ls
dir Xem file, thư mục dir [drive:][path][filename]
cat Xem thông tin file cat composer.json
cls Xóa sạch màn hình
copy Copy file copy “D:sourceA.doc” “E:MydataA.A” /Y
del Xóa file
md Tạo thư mục
attrib Đặt thuộc tính cho
file, folder
cd cd ..\ (lùi 1 cấp)
MySQL cheatsheet
2. Cấu hình đường dẫn XAMP
Thay đổi port XAMP
Thay đổi port 3306 cho phpMyAdmin
Mở file config.inc.php, thiết lập tham số Server port/* Server parameters */$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['port'] = 3307;
Mở file my.ini, thiết lập port 3307[client]
#password = your_passwordport = 3307
socket = /tmp/mysql.sock
# The MySQL server
[mysqld]port = 3307
Thay đổi port IIS
3. Hướng dẫn Composer
Những thư viện PHP được các chuyên gia lập trình PHP xây dựng và phát triển một
cách khá đầy đủ và hoàn thiện, xử lý các vấn đề nghiệp vụ tương đối tốt. Ví dụ như Zend
Framework 2 cũng là một bộ thư viện PHP khá đồ sộ và mạnh mẽ. Tận dụng những điểm
mạnh của từng thư viện, nhiều lập trình viên ưa thích đã sử dụng chúng vào trong quá trình
xây dựng và phát triển các dự án website.
Thông thường, nếu bạn muốn sử dụng một thư viện nào đó thường phải đi tới các địa
chỉ chứa thư viện và download các tập tin nguồn về và cài đặt vào dự án, cách này khá đơn
giản nhưng rủi ro cài đặt không thành công là khá cao, bởi vì những thư viện đó có thể yêu
cầu những thư viện hỗ trợ khác. Như vậy, quá trình cài đặt thư viện của bạn sẽ trở lên
phức tạp và khó khăn hơn rất nhiều.
Composer là gì?
Vào ngày 01/03/2012 phiên bản Composer đầu tiên chính thức được ra mắt. Từ đó đến
này Composer đã được phổ biến rộng rãi như một điều cốt yếu cho PHP.
Composer là gì ? Composer là một công cụ hỗ trợ cài đặt – quản lý các thư viện phụ
thuộc (dependency management) trong PHP. Nó cho phép bạn khai báo các thư viện cần
thiết được sử dụng trong dự án của bạn và nó cung cấp cơ chế cài đặt và cập nhật những
phiên bản mới nhất từ những thư viện đó.Composer sẽ cung cấp cho lập trình viên cơ chế quản lý các thư viện này, bạn có thể dễ
dàng khai báo các thư viện cần sử dụng trong tập tin composer.json, khi đó composer
thông qua các cấu hình sẽ tự động lấy thư viện tương ứng về một dễ dàng và nhanh
chóng. Lập trình viên có thể dễ dàng quản lý và nâng cấp các phiên bản các thư viện đang
sử dụng trong dự án của mình.
Như vậy, Composer sẽ giải quyết một số vấn đề sau:
a) Dự án website của bạn phải cài đặt và sử dụng một số thư viện PHP hỗ trợ;
b) Một số thư viện khi cài đặt cần sử dụng các thư viện hỗ trợ khác;
c) Dễ dàng khai báo – quản lý các thư viện hỗ trợ có trong dự án website của bạn thông
qua tập tin cấu hình;
d) Thực hiện nâng cấp các phiên bản mới nhất của các thư viện cho dự án website của
bạn;
Đầu tiên chúng ta sẽ có cái nhìn tổng quan về Dependency management và sau đó tiến
hành cài đặt Composer. Chúng ta cũng sẽ xem xét về cách sử dụng và sau đó tìm hiểu
thêm một số vấn đề cơ bản. Hãy bắt đầu nào!
Dependency Management là gì?
Dependency Management là một khái niệm khá đơn giản. Giả sử bạn đang tạo ra một
trang web sử dụng các Foundation như Bootstrap và jQuery. Làm thế nào để bạn thêm
chúng vào project của mình?
Cách làm thông thường là vào website chứa những thư viện đó, download các package
và đặt nó ở 1 folder nào đó trong project của bạn. Tất nhiên từ trước đến giờ mọi việc đều
vẫn tốt đẹp. Nhưng bây giờ, bạn sẽ làm gì khi muốn update lên phiên bản mới nhất? Bạn
lại làm lại các công việc trên, ghi đè vào phiên bản cũ ?
Hãy giả định công việc vẫn tiếp diễn bình thường nhưng sau đó bạn nhận thấy có lỗi.
Bạn muốn roll back chúng về phiên bản cũ nhưng roll back về đâu? Bạn sẽ phải tìm các
phiên bản cũ hơn và thử chúng lần lượt cho đến khi tìm được phiên bản đúng.
Thậm chí nếu liệt kê tất cả ra, có lẽ bạn sẽ nhầm lẫn nó với project của người khác. Liệu
họ có đang sử dụng Foundation không? Nếu có, nó được cài đặt ở đâu và đó là phiên bản
nào.
Vấn đề có vẻ không lớn lắm đối với một project nhỏ nhưng hãy thử tưởng tượng một
project với 8-10 dependencies - mà đó vẫn chưa phải là nhiều. Quản lý mọi thứ theo một
module xem chừng rất khó khả thi hay ít nhất là sẽ tốn thời gian.
Dependency Management giải quyết những vấn đề này bằng cách automating (tự động
hóa) và standardizing (tiêu chuẩn hóa). Việc cài đặt các dependencies như Foundation,
jQuery, Twig, Symphony, logging modules được thực hiện một cách tự động. Các phiên
bản ưa dùng cũng có thể được chỉ định để chống xung đột cho từng project.
Một dependency manager chuẩn hóa cách các package được lưu trữ và nơi chúng
được sử dụng. Trong thực tế điều này có nghĩa là mỗi project sử dụng cùng một
dependency manager sẽ có cấu trúc folder của các dependeny giống nhau.
3.1. Cài đặt Composer Yêu cầu hệ thống
- Composer yêu cầu sử dụng PHP 5.3.2+ ; một số cấu hình cài đặt trong PHP sẽ được yêu
cầu nhưng trình cài đặt sẽ cảnh báo bạn về bất kỳ sự không tương thích.
- Để cài đặt các gói thư viện từ các trang nguồn, bạn cần cài đặt các phần mềm quản lý
vesion như SVN, Git… để có thể kiểm soát được các phiên bản gói thư viện.
- Composer có thể làm việc trên nhiều môi trường nền tảng : Window, Linux, OSX.
Cài đặt Composer thủ công
Cuối cùng, chúng ta sẽ tạo một tâp tin composer.bat cùng cấp thư mục với tập tin
composer.phar
Tạo biến môi trường cho file composer.bat để chạy được từ mọi nơi
Cài đặt Composer tự động
Tải Composer-Setup.exe tại trang chủ composer và tiến hành cài đặt
composer.json và composer.lock
Đây là 2 file rất quan trọng trong một package composer.
composer.json là nơi ta khai báo những dependencies dùng trong project, những
thông tin về tên, phiên bản, licenses, source … Nội dung được viết theo JSON format.
Chẳng hạn như ta có một ví dụ sau:
{
"name": "wataridori/bphalcon",
"type": "project",
"description": "A small library which implement some features to phalcon",
"license": "GPL-3.0",
"authors": [
{
"name": "Tran Duc Thang",
"email": "[email protected]"
}
],
"require": {
"php": ">=5.4"
}
}
composer.lock là nơi lưu trữ thông tin về dependencies đã được cài đặt. Ví dụ khi bạn
dùng lệnh install để cài đặt lần đầu thì composer sẽ đọc thông tin về dependencies ở trong
file composer.json, sau đó cài đặt và tạo ra file composer.lock để lưu thông tin cụ thể
về những dependencies đó. Giả sử bạn commit cả 2
filecomposer.json và composer.lock vào version control của mình, rồi bất cứ người nào
tải code về thì dù có cài đặt vào thời điểm khác nhau đi chăng nữa thì vẫn sẽ nhận được
những dependencies với những version giống nhau, do nó được đọc từ
file composer.lock, chứ không phải file composer.json.
Hãy đi vào một trường hợp cụ thể hơn. Trong file composer.json có ghi yêu cầu
là package/A có version >= 3.4.5, và khi bạn cài lần đầu, version mới nhất của nó là 3.4.5
thì package/A với version 3.4.5 sẽ được cài đặt và thông tin được lưu vào
file composer.lock. Sau đó người khác tải code về, và cài đặt dependencies thì mặc dù
lúc đópackage/A có ra version 3.4.6 đi chăng nữa thì composer vẫn sẽ chỉ cài đặt bản
3.4.5 mà thôi, do thông tin này đã được lưu trong composer.lock.
Packagist
Packagist là repository chính để lưu những thông tin về composer package. Bạn có thể
vào trang web của packagist để tìm kiếm những library cần thiết và cài đặt chúng một cách
nhanh chóng và dễ dàng thông qua composer, hoặc bạn cũng có thể tự tạo một package
và chia sẻ với cộng đồng thông qua trang https://packagist.org .
3.2. Các câu lệnh quan trọng của ComposerChạy lệnh của composer bằng cách dùng lệnh trong CMD với cú pháp sau:php composer.phar <cau lenh>
Các câu lệnh composer hay sử dụng:
Các Global Option
o –verbose (-v): Hiện message dài
o –help (-h): Hiện thông tin help
o –quiet (-q): Không xuất ra message gì trong khi chạy câu lệnh
o –no-interaction (-n): Không hỏi gì trong khi chạy câu lệnh
o –working-dir (-d): Thiết lập working dir chỉ định
o –profile: Hiển thị thời gian và memory được sử dụng
o –ansi: Xuất kết quả với encoding là ANSI
o –no-ansi: Dừng việc xuất kết quả với encoding là ANSI
o –version (-V): Hiển thị version hiện tại của Composer
Các câu lệnh
o init : Tạo ra file composer.json nhằm khai báo các thông tin cho package
o install : Đọc thông tin từ file composer.json tại thư mục đang đứng, tổng hợp
các package cần cài đặt, và cài đặt chúng vào một thư mục nào đó bên trong
project.
o update : Update những dependencies đã được cài đặt lên version mới nhất,
đồng thời update nội dung vào file composer.lock
o require : Add hoặc thay đổi nội dung một requirement vào file composer.json.
Sau đó package được add vào hoặc thay đổi sẽ được cài đặt hoặc update.
o global : Là command cho phép ta thực hiện các command khác như install,
update một cách global. Tuy nhiên câu lệnh global yêu cầu ta phải chạy từ thư
mục COMPOSER_HOME
o search : Cho phép bạn tìm kiếm một package từ trong project của mình, hoặc
từ packagist.org
o show : Hiện ra những package khả dụng. Ngoài ra nếu đưa thêm tham số là tên
package ở cuối thì sẽ hiện ra thông tin về package đó.
o depends : Thông tin về những package nào phụ thuộc vào package nào
o validate : Kiểm tra xem nội dung file composer.json có hợp hệ hay không
o status : Check xem có gì được thay đổi ở bên trong dependencies (do mình
thực hiện) hay không.
o self-update : Update bản thân composer
o config : Chỉnh sửa các setting cơ bản
o create-project : Tạo ra một project từ package đã có sẵn. (chẳng hạn như
bạn muốn deploy một package là một application, hay muốn develop tiếp từ một
package đã có …)
o dump-autoload : Update autoloader khi có khi có class mới tong classmap
package.
o licenses : Hiện thị tên và version của tưng license cho từng package được
install.
o run-script : Dùng để chạy script một cách thủ công
o diagnose : Check xem có vấn đề gì với composer hay không
o archive : Tạo ra một file nén (zip hoặc tar) cho một package ở một version chỉ
định
o help : Hiện thị thông tin về một câu lệnh nào đó
http://fsd14.com/post/104-composer-la-gi
4. Cài đặt Laravel
http://cheats.jesse-obrien.ca/
https://getcomposer.org
Để chạy được composer thì yêu cầu phải có composer.json trong thư mục cùng cấp
php composer.phar install hoặc composer install
Chạy command sau, với laravel thứ nhất là tên tài khoản github, laravel thứ 2 là tên ứng
dụng 4.1.2.27 là phiên bản tải, your-project-name là tên project tự đặtcomposer create-project laravel/laravel=4.1.27 laravel-demo --prefer-dist
Sau đó, vào thư mục laravel-demo, khởi động servercd laravel-demo
php artisan serve --port=8888
5. Hướng dẫn Laravel
5.1. Cấu hình cơ bảnĐổi tên app (namespace)
Việc đầu tiên cần làm sau khi cài ứng dụng là đổi tên. Thay vì sử dụng tên mặc định
là App chúng ta sẽ đổi nó thành TungAppphp artisan app:name TungApp
Cấu hình các thông số
Ngày nay, git là version control thông dụng. Và bạn sẽ không muốn các thông tin như
cấu hình database, mật khẩu, API key được công khai (ví dụ trên Github hay Bitbucket khi
push code). Và bạn cũng không muốn phải sửa các thông số này thường xuyên khi deploy
ứng dụng do sự khác nhau giữa các môi trường làm việc (ví dụ local và production).
Laravel tích hợp sẵn .dotenv để giúp bạn làm thực hiện việc này dễ dàng nhất. Mỗi mỗi
trường sẽ có 1 file .env ở thư mục gốc lưu các thông tin quan trọng.
Cách hoạt động của file .env rất đơn giản. Hãy mở file /config/database.php các bạn
sẽ thấy dòng này :'mysql' => [ 'driver' => 'mysql', 'host' => env('DB_HOST', 'localhost'), 'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'), 'password' => env('DB_PASSWORD', ''), 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '',
'strict' => false,],
File .env đi kèm sau khi cài Laravel thành công sẽ có nội dung như sau:APP_ENV=local
APP_DEBUG=true
APP_KEY=rTPeTeKYrhiu61RyvFeyGkbZF2KS2Fe2
DB_HOST=localhost
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
CACHE_DRIVER=file
SESSION_DRIVER=file
Laravel dùng hàm env('DB_HOST', 'localhost') để lấy giá trị DB_HOST trong file .env.
Nếu không có giá trị này, giá trị mặc định là localhost sẽ được dùng. Các bạn có thể bỏ
trống biến thứ 2 của hàm env và khi đó giá trị mặc định trả về sẽ là null**
* Gets the value of an environment variable. Supports boolean, empty
and null.
*
* @param string $key
* @param mixed $default
* @return mixed
*/
function env($key, $default = null)
{
// some thing here
}
Trong file .env chúng ta sẽ cấu hình các mụcDB_HOST=localhostDB_DATABASE=laravel5DB_USERNAME=rootDB_PASSWORD=
Phù hợp với cấu hình mysql của bạn. (nếu bạn sử dụng PostgreSQL, SQLite,...) Hãy
thay đổi default cho phù hợp trong config/database.php
Kiểm tra kết nối database thành công bằng cách chạy lệnh sau vào Cmderphp artisan tinker
>>> DB::Statement("SHOW TABLES")
true
Lưu ý: SHOW TABLES là câu lệnh của MySQL để hiển thị tất cả table trong database hiện
tại (gist), nếu các bạn sử dụng các loại database khác. Câu lệnh này phải được thay đổi
cho phù hợpDB::Statement($command)
Dùng để chạy một câu query.
Cấu hình Timezone
Theo chuẩn timezone PHP: http://php.net/manual/en/timezones.asia.php 'timezone' => 'UTC',
5.2. Gửi MailThiết cơ chế bảo mật Gmail sang chế độ kém bảo mật (bật)
Để gửi mail bằng Laravel được thì ta phải chinhr Gmail sang chế độ kém bảo mật. Vào
site https://myaccount.google.com, chọn Ứng dụng và trang web đã kết nối, bật chế độ kém
an toàn Gmail.
6. Routing Laravel
6.1. Basic Routing
6.2. Route Parameters
6.3. Name Routes
6.4. Route Groups
6.5.
6.6. Laravel Debugbar
6.7. Laravel Debugbar
7. Controller Laravel
8. View Laravel
9. Blade Template Laravel
10. Database
10.1. Query Builder
function up: tạo vào cơ sở dữ liệu; function down: thêm, chỉnh sửa dữ liệu
11. Eloquent ORM
12. Cài đặt Package
12.1. Laravel Debugbarhttps://packagist.org/packages/barryvdh/laravel-debugbar
Chạy composer command tài package debugbarcomposer require barryvdh/laravel-debugbar
Mở config/app.php và thêm vào mảng ‘providers’Barryvdh\Debugbar\ServiceProvider::class,
Finally, if you wish to add the facades add this to the ‘aliases’ array'Debugbar' => Barryvdh\Debugbar\Facade::class,
Copy the package config to your local config with the publish command:php artisan vendor:publish
12.2. Laravel Debugbar
Cấu hình MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_PASSWORD=1166089zz1
MAIL_ENCRYPTION=tls
HoặcMAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465
MAIL_PASSWORD=1166089zz1
MAIL_ENCRYPTION=ssl
http://fsd14.com/post/44-gui-email-voi-laravel-4-va-gmail
http://laravelviet.net/gui-emails-with-laravel-4-gmail/
Tham khảohttp://hocphp.info/laravel-framework/
http://khoanguyen.me
http://kungfuphp.com/category/laravel-framework-5
http://freetuts.net/laravel
http://laptrinh.io/browse/series/hoc-laravel-5-va-tao-mot-blog-don-gian
http://laravelviet.net/category/laravel-co-ban/
http://vndevclub.com/category/laravel
http://fsd14.com/danh-muc/24-laravel
http://chiaselaptrinhphp.com/categories/1-laravel.html
http://sangplus.com/tag/laravel