Hướng dẫn cài đặt laravel 5

  -  

Laravel là một trong framework PHP có phong cách thiết kế dành mang đến việc cải cách và phát triển các áp dụng web theo mô hình MVC. Cùng với sự dễ dàng và tinh tế, Laravel hoàn toàn có thể giúp bạn tạo thành các website một cách dễ dàng, giúp bạn tiết kiệm được nhiều thời gian với công sức, đặc trưng hơn là tạo thành được cho bạn hứng thú với quá trình lập trình web. Laravel ra phiên bạn dạng đầu tiên trong thời điểm tháng 6/2011 cùng đã hối hả nhận được sự mừng đón của cộng đồng PHP, đến năm trước đó nó đã trở thành framework PHP thịnh hành nhất. Trong nội dung bài viết này, mình sẽ cùng chúng ta tìm phát âm về Laravel 5 - phiên bạn dạng mới độc nhất vô nhị của Laravel, từ đông đảo bước thiết đặt ban đầu, cho đến từng bước cách tân và phát triển 1 áp dụng web cơ bản, và ở đầu cuối là deploy vận dụng web lên 1 hosting service.

Bạn đang xem: Hướng dẫn cài đặt laravel 5

2. Cài đặt Laravel 5

2.1 những yêu cầu cơ bản

Trước khi tiến hành setup Laravel 5, hãy bảo đảm rằng máy bạn đã sở hữu PHP version >= 5.4 và hồ hết extension sau:

Mcrypt PHP ExtensionOpenSSL PHP ExtensionMbstring PHP ExtensionTokenizer PHP Extension

2.2 cài đặt Composer

Composer là luật để cai quản package giỏi library của PHP, nó tương tự với bundler của Ruby. Để cài đặt Composer bạn chỉ việc chạy 1 câu lệnh sau:

$ curl -sS https://getcomposer.org/installer | phpBạn đã thấy 1 tệp tin composer.phar được tạo nên và chúng ta có thể chạy Composer bằng cách:

$ php composer.pharTuy nhiên chúng ta nên rename và chuyển file composer.phar đó vào folder bin để rất có thể chạy Composer một cách global:

$ mv composer.phar /usr/local/bin/composer

2.3 cài đặt Laravel 5

Đầu tiên các bạn download Laravel installer bằng cách sử dụng composer như sau:

$ composer global require "laravel/installer=~1.1"Sau bước này Laravel installer sẽ được setup thành công nhưng để hoàn toàn có thể chạy được lệnh laravel bạn cần phải thêm thư mục ~/.composer/vendor/bin vào biến môi trường xung quanh PATH. Mở file ~/.bashrc cùng thêm cái sau vào thời gian cuối file:

export PATH="~/.composer/vendor/bin:$PATH"Như vậy là bạn đã hoàn thành quá trình cài đặt Laravel 5, bây chừ chỉ với câu lệnh laravel new là chúng ta có thể tạo ra 1 vận dụng web cơ bản. Hãy cùng tiếp tục tìm hiểu kĩ hơn ở trong phần tiếp theo của bài viết.

3. Tạo ra 1 ứng dụng web cùng với Laravel 5

Ở phần này, bản thân sẽ thực hiện Laravel để chế tác 1 áp dụng web solo giản chất nhận được người dùng tạo ra các Flash Card cung cấp việc ghi nhớ các từ bắt đầu trong quá trình học nước ngoài ngữ. OK, ban đầu thôi!

3.1 chế tạo 1 áp dụng mới

Mình sẽ khởi tạo 1 ứng dụng tên là flashcards trong thư mục ~/projects:

$ cd ~/projects$ laravel new flashcardsCrafting application...Generating optimized class loaderCompiling common classesApplication key mix successfully.Application ready! Build something amazing.Mở thư mục flashcards ta vẫn thấy không hề thiếu các thành phần của một ứng dụng Laravel cơ phiên bản như hình dưới:

*

Mình xin phân tích và lý giải qua chân thành và ý nghĩa của những thư mục như sau:

Thư mụcÝ nghĩa
appNơi chứa cục bộ code của áp dụng như các model, controller...
bootstrapNơi chứa một số file khởi rượu cồn framework và thông số kỹ thuật autoloading
configNơi chứa những file cấu hình của ứng dụng
databaseNơi đựng database migration và seed
publicNơi cất các đối tượng người tiêu dùng public như asset (ảnh, CSS, Javascript, ...)
resourcesNơi chứa các file view hoặc raw asset (LESS, SASS, CoffeeScript)
storageNơi chứa các file template Blade đã có compile, các file lưu trữ thông tin session, cache, và những file khác được tạo vì framework
testsNơi chứa các file test
vendorNơi chứa các dependency của Composer

3.2 chuẩn bị database

3.2.1 cấu hình database

Mình đã sinh sản sẵn 1 database có tên là flashcards vào MySQL, để vận dụng Laravel có thể connect được với database này thì nên điền các thông số vào tệp tin .env như dưới:

DB_HOST=localhostDB_DATABASE=flashcardsDB_USERNAME=usernameDB_PASSWORD=passwordLưu ý là tuy thực chất những thông số kỹ thuật database nằm trong file config/database.php tuy nhiên file đó lại đọc những thông số kỹ thuật của database được quan niệm trong tệp tin .env.

3.2.2 chế tác bảng

Ứng dụng của mình chất nhận được người dùng tạo các Flash Card nên sẽ đề nghị 1 bảng flash_cards với những thông tin như dưới:

CộtKiểu dữ liệuÝ nghĩa
wordstringTừ yêu cầu ghi nhớ
pronunciationstringCách phạt âm của từ
meaningstringÝ nghĩa của từ
languagestringNgôn ngữ

Chúng ta có thể tạo bảng trên thông qua Laravel bằng phương pháp tạo ra 1 file migration tương ứng:

$ php artisan make:migration create_flash_cards_tableCreated Migration: 2015_03_26_153200_create_flash_cards_tableHoặc bạn cũng có thể tạo tệp tin migration thuộc với mã sản phẩm FlashCard chỉ với 1 câu lệnh:

$ php artisan make:model FlashCardModel created successfully.Created Migration: 2015_03_26_154304_create_flash_cards_tableFile migration đang được tạo ra trong folder database/migrations dẫu vậy cần sửa đổi để thêm những thông tin về các cột ở trên. Dưới đó là file migration sau khi mình đã chỉnh sửa:

use IlluminateDatabaseSchemaBlueprint;use IlluminateDatabaseMigrationsMigration;class CreateFlashCardsTable extends Migration /** * Run the migrations. * *
return void */public function up()Schema::create("flash_cards", function(Blueprint $table)$table->increments("id");$table->string("word");$table->string("meaning");$table->string("pronunciation");$table->string("language");$table->timestamps(););/** * Reverse the migrations. * *
return void */public function down()Schema::drop("flash_cards");Để chạy tệp tin migration trên các bạn hãy chạy câu lệnh sau:

$ php artisan migrate

3.2.3 Tạo dữ liệu mẫu

Trong ngôi trường hợp bạn muốn tạo những dữ liệu mẫu để việc cách tân và phát triển ứng dụng thuận tiện hơn thì rất có thể định nghĩa trước những dữ liệu kia trong file database/seeds/DatabaseSeeder.php

use IlluminateDatabaseSeeder;use IlluminateDatabaseEloquentModel;class DatabaseSeeder extends Seeder /** * Run the database seeds. * *
return void */public function run()Model::unguard();$this->call("FlashCardTableSeeder");$this->command->info("Flash cards seeded.");class FlashCardTableSeeder extends Seeder public function run() DB::table("flash_cards")->delete(); AppFlashCard::create(< "word" => "おはよう", "meaning" => "good morning", "pronunciation" => "ohayou", "language" => "Japanese" >); Để seed tài liệu bạn hãy chạy lệnh sau:

$ php artisan db:seed

3.3 tạo nên controller và những action

Ứng dụng của chính bản thân mình sẽ gồm các công dụng dưới đây:

Xem danh sách những Flash CardXem 1 tin tức Flash card nào đóTạo Flash thẻ mới

Như vậy sẽ nên tạo 1 controller là FlashCardController cùng với 4 action là index, show, create, store. Bài toán này có thể được triển khai bằng câu lệnh sau:

$ php artisan make:controller FlashCardControllerController bắt đầu được tạo ra ở file app/Http/Controllers/FlashCardController.php, bây chừ hãy thuộc viết thêm các đoạn xử lí cho từng action.

3.3.1 Index

Lấy ra danh sách các Flash Card

public function index()$flashCards = AppFlashCard::getByLanguage(Request::input("lang"));$flashCards = $flashCards->shuffle();return view("flash_cards.index", <"flashCards" => $flashCards>);Ở trên đây getByLanguage() là hàm lôi ra danh sách những Flash card theo từng nhiều loại ngôn ngữ, mình đã viết trước hàm này trong mã sản phẩm FlashCard:

public static function getByLanguage($language = NULL)switch (strtolower($language)) case "en":case "eng":case "english":return self::where("language", "English")->get();case "ja":case "jp":case "jap":case "japanese":return self::where("language", "Japanese")->get();default:return self::all();

3.3.2 Show

Lấy ra 1 Flash thẻ theo id

public function show($id)$flashCard = AppFlashCard::find($id);return view("flash_cards.show", <"flashCard" => $flashCard>);

3.3.3 Create

Action này tương xứng với form sản xuất FlashCard mới đề xuất không cần xử lí gì sệt biệt.

3.3.4 Store

Tạo Flash Card new từ thông tin người dùng nhập vào. Sau khoản thời gian tạo chấm dứt sẽ quay lại action show khớp ứng Flash card đó.

public function store()$flashCard = AppFlashCard::create(<"word" => Request::input("word"),"pronunciation" => Request::input("pronunciation"),"meaning" => Request::input("meaning"),"language" => Request::input("language")>);return Redirect::to(action("FlashCardController
show", $flashCard->id));

3.4 Tạo các view

Chúng ta sẽ sở hữu 3 view tương ứng với 3 action index, show và create. Những view này có phần không ngừng mở rộng là .blade.php, được đặt trong folder resources/views/flash_cards và bao gồm nhiệm vụ đó là hiển thị những thông tin lấy được từ các controller.

Xem thêm: Cách Đổi Thanh Công Cụ Trên Desktop, Thanh Công Cụ Màn Hình Bị Ngược

3.4.1 index.blade.php


foreach($flashCards as $key => $flashCard) $flashCard->word {!! link_to(action("FlashCardController
endforeachView (sau lúc đã chỉnh sửa HTML, CSS):

*

3.4.2 show.blade.php

$flashCard->word $flashCard->pronunciation $flashCard->meaning View (sau khi đã chỉnh sửa HTML, CSS):

*

3.4.3 create.blade.php

Đây vẫn là size để người dùng tạo 1 Flash thẻ mới, sẽ sở hữu được 4 ô nhằm nhập thông tin khớp ứng với 4 ngôi trường word, pronunciation, meaning, language. Ở đây mình vẫn dùng các method helper của Form.

!! Form::open(<"action" => <"FlashCardController
store">>) !! !! Form::text("word", "") !! !! Form::text("pronunciation", "") !! !! Form::textarea("meaning", "", <"rows" => 5>) !! !! Form::select("language", <"English" => "English", "Japanese" => "Japanese">, null>) !! !! Form::submit("Create") !!!! Form::close() !!View (sau lúc đã sửa đổi HTML, CSS):

*

Như vậy là về cơ phiên bản ứng dụng web đơn giản dễ dàng của bọn họ đã hoàn tất. Tuy nhiên trên đây mình chỉ viết qua hầu như phần chính, chúng ta cũng có thể xem source code hoàn hảo trên Github của mình.

https://github.com/nguyenductung/flashcards_laravel.

4. Deploy trên Heroku

Ở phần cuối của bài viết mình đang hướng dẫn các bạn cách deploy áp dụng web vừa chế tác trên Heroku - 1 hosting service hết sức phổ biến. Hãy đảm bảo là bạn đã có tài khoản trên Heroku và thiết đặt xong Heroku Toolbelt trước khi ban đầu bước deploy này.

4.1 chế tác 1 Heroku project

Bạn hoàn toàn có thể dùng Heroku Toolbelt để khởi tạo Heroku project cho vận dụng web làm việc trên bằng phương pháp sau:

$ cd ~/projects/flashcards$ heroku createCreating polar-river-6938... Done, stack is cedar-14https://polar-river-6938.herokuapp.com/ | https://git.heroku.com/polar-river-6938.gitGit remote heroku addedNhư vậy là bạn đã tạo chấm dứt 1 project với tên là polar-river-6938. Ngoài ra 1 remote repository với tên heroku cũng sẽ được tạo ra, về sau khi deploy bạn chỉ việc push code lên nhánh master của repository này là được.

Nếu bạn có nhu cầu đổi thương hiệu project sinh sống trên đến dễ lưu giữ thì hoàn toàn có thể chạy lệnh bên dưới (vì mình đã được lấy tên flashcards-laravel nên các bạn sẽ phải được lấy tên khác bởi Heroku không cho phép 2 project tất cả cùng 1 tên ^^):

$ heroku apps:rename flashcards-laravel

4.2 sẵn sàng môi trường

Cấu hình buildpack $ heroku config:add BUILDPACK_URL=https://github.com/heroku/heroku-buildpack-phpTạo database $ heroku addons:add heroku-postgresql:dev

4.3 Sửa đổi vận dụng web

Cấu hình databaseĐể sử dụng database đã tạo ra ở trên bạn phải sửa lại tệp tin config/database.php như dưới:

Set PostgreSQL là database connection mặc định:

"default" => "pgsql",Update thông tin của database:

"pgsql" => < "driver" => "pgsql", "host" => parse_url(getenv("DATABASE_URL"))<"host">, "database" => substr(parse_url(getenv("DATABASE_URL"))<"path">, 1), "username" => parse_url(getenv("DATABASE_URL"))<"user">, "password" => parse_url(getenv("DATABASE_URL"))<"pass">, "charset" => "utf8", "prefix" => "", "schema" => "public",>,Thêm ProcfileTạo 1 file với tên Procfile vào thư mục nơi bắt đầu của áp dụng web với văn bản như dưới:

web: vendor/bin/heroku-php-apache2 publicHeroku vẫn đọc file này và đưa ra quyết định xem quá trình nào sẽ được chạy lúc ứng dụng của chúng ta được deploy trên vps của Heroku.

Xem thêm: Lệnh Che Đối Tượng Khác Khi Nó Đè Lên

4.4 Deploy

Để deploy các bạn hãy commit những đổi khác ở trên rồi push lên nhánh master của heroku:

$ git showroom -A$ git commit -m "Deploy to lớn Heroku"$ git push heroku master...-----> Launching... Done, v10 https://flashcards-laravel.herokuapp.com/ deployed to lớn HerokuTo git
heroku.com:flashcards-laravel.git + f14ad18...c6e8b16 master -> master (forced update)OK, còn vài ba bước cuối cùng nữa thôi, bạn hãy chạy migrate cùng db:seed để sản xuất bảng và những dữ liệu cần thiết:

$ heroku run php artisan migrate$ heroku run php artisan db:seedNhư vậy là chúng ta đã ngừng việc deploy áp dụng web lên Heroku, nhằm access cho tới website này chúng ta có thể truy cập vào showroom http://flashcards-laravel.herokuapp.com/.