2014年7月17日 星期四

[PHP] Laravel 更改路徑 - public 目錄


裝好 Laravel 後會發現,要打上localhost/MAMP/project_name/public/才會show出歡迎頁面
因為Laravel希望你將 Root 指向 public 目錄,避免網站核心被惡意存取
但現在希望把public這曾拿掉,url看起來才會輕鬆一點
要達到這樣的目的,我們要搬動3個檔案然後修改2行code就可!!

首先移到./public目錄下把.htaccess, index.php, favicon.ico移到外面
(與app, bootstrap, public, vendor資料夾同一層)
下一步
打開index.php修改兩個路徑
require __DIR__.'/../bootstrap/autoload.php';
$app = require_once __DIR__.'/../bootstrap/start.php';
//改成以下
require __DIR__.'/bootstrap/autoload.php';
$app = require_once __DIR__.'/bootstrap/start.php';
//其實就是把路徑調整而已 讓他抓對地方
Bingo DONE!

[PHP] Laravel 入坑 - 安裝設定


最近參加PHP社群活動認識了Laravel這套framework
一聽之下很有Ruby的影子
似乎就是我在尋覓的PHP framework
立馬來實作看看!!!!
Laravel使用Composer作為套件管理工具
所以就用Composer來把Laravel建置起來吧!
先確認Composer已經建置好
composer -v
有的繼續往下
沒得快去裝吧->我之前的文章"[PHP] Composer 建置"有教,快轉台過去裝
step by step.
cd ./[Project Location]  //移到專案要建置的位址
composer create-project laravel/laravel [Project Name] --prefer-dist  
//這步就會幫你把Laravel該有的都建起來!!
題外話補充: 在裝起來的過程中可能會遇到一些問題
像是最後出現error: mcrypt is required
然後就是建置failed的概念.....
有兩個可能原因
1. mcrypt並未安裝,解法如下
brew install php55-mcrypt
2. 如果使用的是MAMP之類在local端開發,那可能是php的PATH指定錯誤,解法如下
which php  #查哪個途徑的php正在被使用
           #理論上會出現這個錯誤,多數是使用中的php是指向的問題
cd ~       #先移動到home directory
vim .bash_profile  #編輯.bash_profile 加入以下資訊
export PATH=/Applications/MAMP/bin/php/php5.4.10/bin:$PATH
#記得先查一下MAMP目前用什麼version的php
重啟terminal,在看which php就能解決問題了,這時候再重新creat-project laravel一次就沒問題了!
run完出現以下資訊就代表Laravel project建好了!連key都幫你生好並設定好了: )

打開project資料夾可以看見一大包都已經裝好

之後主要會寫到的大致都在app/下的models, views, controllers和routes.php
但首先我們先針對config作一些初始設定(雖然Laravel官方說明他們不需要什麼建制就可以快速開發)
但還是來做些設定比較方便之後辦事
1. 因為Laravel非常好心的已經幫我們分好local, testing, packages三種開發階段,並會依不同階段的config去覆寫global的config
所以我們到./bootstrap/start.php找到etectEnvironment(),設定local端
hostname  #先查local端的name
$env = $app->detectEnvironment(array(

 'local' => array('homestead'),   //把homestead用hostname查回來的name取代掉

));
接著去查current application environment
php artisan env  #檢查目前專案的環境是哪個
#理論上取代後current application environment會從production -變成-> local
這邊大家會好奇 artisan是什麼指令呢?!
artisan直譯: 工匠,也就是官方主張的像工匠般藝術的coding !!!
在使用Laravel時,artisan是個很重要的指令,不管裝package, 建migration都需要透過它
php artisan [任務]  //使用artisan的標準格式
php artisan        //list出有哪些任務可使用
最後去./app/config/下的app.php和database.php做些timezone, sql的設定就可以做後續開發了!!
enjoy Laravel : )