Laravel 5 Doc

15
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';

description

Huong dan laravel 5

Transcript of Laravel 5 Doc

Page 1: 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

Page 2: Laravel 5 Doc

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ì?

Page 3: Laravel 5 Doc

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.

Page 4: Laravel 5 Doc

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

Page 5: Laravel 5 Doc

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ù

Page 6: Laravel 5 Doc

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

Page 7: Laravel 5 Doc

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

Page 8: Laravel 5 Doc

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

Page 9: Laravel 5 Doc

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)

Page 10: Laravel 5 Doc

Để 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

Page 11: Laravel 5 Doc

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

[email protected]

MAIL_PASSWORD=1166089zz1

MAIL_ENCRYPTION=tls

HoặcMAIL_DRIVER=smtp

MAIL_HOST=smtp.gmail.com

MAIL_PORT=465

[email protected]

Page 12: Laravel 5 Doc

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