2020/09/05
[Laravel] Laravel 8 搶先玩
markdown
Laravel 8 即將在 September 8, 2020 釋出!
今天就搶先來玩一下囉~
#### 更新 Laravel Installer
先來把 Laravel Installer 更新到最新版本 4.0.0
### 方法 1: 直接修改本機全域的 `composer.json`
把 `laravel/installer` 的版本改成 "^4.0"
```json
{
"require": {
...
"laravel/installer": "^4.0"
}
}
```
再執行全域更新
```
composer global update
```
### 法方 2: 移除再重裝 Laravel Installer
先移除
```
composer global remove laravel/installer
```
再安裝最新版本
```
composer global require laravel/installer
```
確認版本是否為新版
```
laravel -v
```
#### Laravel 8
我們來用剛剛新裝的 Laravel Installer 來建立 Laravel 8 專案吧!
因為目前還沒正式 Release, 所以先來裝 dev 版本
暫時先把專案名稱命名為 lv8-dev
```
laravel new lv8-dev --dev
```
新版本安裝畫面變得不一樣囉~ 有 Laravel 圖文字樣煥然一新!
再來看一下 Laravel 8 的新呈現畫面 (本範例使用 Valet 開發環境, 若以指令瀏覽結果,請輸入 `php artisan serve`)
2020/06/14
[Laravel] 解決 Sqlite 在 migration 退版時發生不支援 dropColumn 或 renameColumn 多重呼叫的問題
markdown
### 問題
在 Laravel 使用 Sqlite 為資料庫使用, 執行 migration rollback 的時候發生下列錯誤訊息:
SQLite doesn't support multiple calls to dropColumn / renameColumn in a
single modification.
### 發生原因
在 migration 的 down() 方法裡使用多個 dropColumn 但 Sqlite 不支援
$table->dropColumn('field1');
$table->dropColumn('field2');
### 解決方法
用 array() 方式來改寫 dropColumn 即可
$table->dropColumn([
'field1',
'field2',
]);
### 參考連結
- [Database: Migrations -- Dropping Columns](https://laravel.com/docs/7.x/migrations#dropping-columns)
2019/01/17
[VS Code] 如何整合設定 PHP 的開發環境至 Visual Studio Code
最近在帶 Laravel 工作坊,有許多學員為非程式開發人員,在入門程式開發的過程中。要把開發環境設定完成,若不透過手把手帶領,可能要繞很大圈才有辦法完全設定完畢。
由於 Laravel 這個框架的底程程式語言為 PHP。就以 PHP 的開發環境來跟 Visual Studio Code 做整合介紹。
以 Visual Studio Code 為我們整合的開發環境:Git, Terminal, PHP 的整合設定
這次介紹主要以 Windows 的作業系統平台來做範例。當然大多數的 Visual Studio Code 設定也適用於 Mac,只是在 Mac 的設定上會少很多 (主要是 Terminal 以 bash 為主,PHP 及 Git 的路徑設定在安裝完時已經 Ready 了)


由於 Laravel 這個框架的底程程式語言為 PHP。就以 PHP 的開發環境來跟 Visual Studio Code 做整合介紹。
目的
以 Visual Studio Code 為我們整合的開發環境:Git, Terminal, PHP 的整合設定
這次介紹主要以 Windows 的作業系統平台來做範例。當然大多數的 Visual Studio Code 設定也適用於 Mac,只是在 Mac 的設定上會少很多 (主要是 Terminal 以 bash 為主,PHP 及 Git 的路徑設定在安裝完時已經 Ready 了)
環境
- Windows 10
- wagon (v1.4.0) (WAMP 安裝整合包: 已包含 PHP)
- Git (v2.20.1)


2018/09/09
[Laravel] Laravel 5.7 的新功能: dump-server
2018/05/06
[Laravel] 解決使用 Laravel Mix 執行 npm 出現 sass 編譯失敗
快速筆記
這錯誤主要出現在編譯 sass 時發生
訊息如下:
ERROR Failed to compile with 2 errors
error in ./resources/assets/sass/style.scss
解決方法:
執行
npm rebuild node-sass --force 重新建置 node-sass 即可2017/04/23
[nginx] 如何設定簡易 PHP Web Server 於 Windows 10 來跑 Laravel 專案 (用 nginx + PHP 7.1)
輕量 nginx 網頁伺服器,在之前曾寫過一篇超簡易的 nginx 設置上手文
今天來加點料,加上可執行 PHP 的環境,並設置 Laravel 的專案環境
設置環境
- Windows 10
- nginx 1.12.0
- PHP 7.1.4-nts-x86/x64
準備檔案
- nginx
- Visual C++ 可轉散發套件
- PHP
至於 Visual C++ 可轉散發套件要選什麼版本,是依照 PHP 下載的版本來決定要用哪個。
如果像下圖 php-7.1.4-nts-Win32-VC14-x86 則需要裝 vc_redist_x86.exe (下載的是 Microsoft Visual C++ 2015 的 x86 版本)

2017/01/14
[MySQL] Laravel 在連接 MAMP 的 MySQL 出現 SQLSTATE[HY000] [2002] 錯誤的解決方法
今天在 Agile Tour Taichung 2017 工作坊的環境架設中,有學員遇到在實作 db migration 時出現 SQLSTATE[HY000] [2002] 的錯誤
由於這個錯誤訊息我本身已經遇到太多次了,多到一看到這個錯誤代碼就知道發生什麼事
但還是再做個記錄,也許又可以解救遇到相同的困擾的朋友們
由於這個錯誤訊息我本身已經遇到太多次了,多到一看到這個錯誤代碼就知道發生什麼事
但還是再做個記錄,也許又可以解救遇到相同的困擾的朋友們
2016/08/21
[IIS] Windows 10 + IIS 10 + PHP + Laravel 環境設定
2016/07/28
2016/07/24
2016/07/13
[Laravel] 解決 Failed to listen on 0.0.0.0:8000 的問題
2016/06/24
[Laravel] 如何連接 SQL Server 資料庫及注意事項
通常開發 Laravel 使用的資料庫大多為 MySQL 或是 Sqlite, 今天遇到網友發問連線至 MS SQL Server 的問題.
我好像也沒真正去連 SQL Server, 那麼就來手動測試一下連線至 MS SQL Server 看看吧!
必備元件:
下載 Microsoft PHP Driver for SQL Server

現在官網上的下載版本只支援到 PHP v5.6, 所以只能下載 3.2 版本, 測試的 PHP 版本為 5.6.x
另外若是使用 PHP 7 的朋友, 可以到 GitHub 下載 Azure/msphpsql v4.x 的版本
https://github.com/Azure/msphpsql/tree/v4.0.4
我好像也沒真正去連 SQL Server, 那麼就來手動測試一下連線至 MS SQL Server 看看吧!
環境:
- Windows 10
- SQL Server 2014
- Apache 2.4.18 (Win32)
- Laravel 5.2.39
- PHP 5.6.9 / Microsoft PHP Driver for SQL Server v3.2
- PHP 7.0.6 / Microsoft Drivers for PHP for SQL Server v4.0.4
必備元件:
下載 Microsoft PHP Driver for SQL Server

現在官網上的下載版本只支援到 PHP v5.6, 所以只能下載 3.2 版本, 測試的 PHP 版本為 5.6.x
另外若是使用 PHP 7 的朋友, 可以到 GitHub 下載 Azure/msphpsql v4.x 的版本
https://github.com/Azure/msphpsql/tree/v4.0.4
2016/05/26
[Laravel] 解決在 Windows 下 Laravel 跑 glup tdd 測試路徑及 phpunit 版本相衝問題
在 Laravel 執行 phpunit 測試有兩種方法
1. 直接下指令 phpunit
2. 搭配 Laravel-Elixir 執行 gulp tdd 或 gulp watch
遇雷環境一 (執行 phpunit):

在此雖然是顯示 PHPUnit 4.8.26 (此為在 Laravel 裝的 PHPUnit 版本, 而本機上為 5.3.4)
卻會出現 PHP Fatal error, 產生 Exception
解決方法一:
將本機上的 phpunit 降版至 4.8.26
移除全域的 phpunit 版本
安裝全域特定版本的 phpunit

再跑一次, 可以正確執行測試
1. 直接下指令 phpunit
2. 搭配 Laravel-Elixir 執行 gulp tdd 或 gulp watch
遇雷環境一 (執行 phpunit):
- Windows 10
- Node.js 5.11.0
- Laravel 5.2.32
- PHPUnit 5.3.4

在此雖然是顯示 PHPUnit 4.8.26 (此為在 Laravel 裝的 PHPUnit 版本, 而本機上為 5.3.4)
卻會出現 PHP Fatal error, 產生 Exception
解決方法一:
將本機上的 phpunit 降版至 4.8.26
移除全域的 phpunit 版本
composer global remove phpunit/phpunit
安裝全域特定版本的 phpunit
composer global require "phpunit/phpunit=4.8.26"

再跑一次, 可以正確執行測試
2016/04/24
[Laravel] 如何使用 Elixir 的 BrowserSync
我想這是常常遇到的雷, 沒有記錄下來總是會忘記
目前測試的版本:
1. 建立 Laravel 專案
2. npm 安裝套件
3. 修改專案中的 gulpfile.js
目前測試的版本:
- Laravel 5.2.29
- laravel-elixir 5.0.0
1. 建立 Laravel 專案
composer create-project laravel/laravel myproject --prefer-dist
2. npm 安裝套件
npm install
3. 修改專案中的 gulpfile.js
mix.browserSync({
proxy : 'localhost:8000'
});
2016/04/12
[Laravel] 解決使用 tinker 出現 PsySH history file found 的問題
Laravel 的 tinker 指令
結果出現錯誤訊息:
解決方法:
1. 可以直接把 ~/.config/psysh_history 刪掉
2. 把它移到自己家目錄的 .config/psysh/ 資料夾中
php artisan tinker
結果出現錯誤訊息:
PsySH history file found at '/Users/USERNAME/.config/psysh_history'.
Please delete it or move it to '/Users/USERNAME/.config/psysh/psysh_history'.
解決方法:
1. 可以直接把 ~/.config/psysh_history 刪掉
rm ~/.config/psysh_history
2. 把它移到自己家目錄的 .config/psysh/ 資料夾中
cd ~/.config
mkdir psysh
mv psysh_history ~/config/psysh/
2015/11/20
[Laravel] 整合工具系列: 輕量資料庫 Adminer
過去在無法直接管理遠端的 MySQL 資料庫時, 都要上傳一大包的 phpMyAdmin. 但是肥大的工具, 其實大多只用簡易的功能 -- SQL 語法來建置初始資料表.
殺雞哪需要出動牛刀?! 偶然之下接觸到 Adminer 這個超輕量的資料庫管理工具, 只要一支檔案, 即可立即操作.
不過有薦於安全性, 還是不想直接門戶大開. 總會用 .htaccess 來限制 IP. 安全性是顧到了, 但如果沒有固定 IP, 就常需要再更新 .htaccess 的檔案, 又顯得有點小麻煩.
最近用 Laravel 執行的專案較多, 原本找到一個 laravel adminer 的套件, 不過呢~它只有單純的英文版!!!
決定動手自己來打造一個具權限控制的 adminer 整合套件, 順便把繁體中文版本也加上去!!
套件名稱: onecentlin/laravel-adminer
Laravel Adminer Database Manager (Laravel 輕量資料庫管理工具)
初聲試啼~ 歡迎指教~ ^^
殺雞哪需要出動牛刀?! 偶然之下接觸到 Adminer 這個超輕量的資料庫管理工具, 只要一支檔案, 即可立即操作.
不過有薦於安全性, 還是不想直接門戶大開. 總會用 .htaccess 來限制 IP. 安全性是顧到了, 但如果沒有固定 IP, 就常需要再更新 .htaccess 的檔案, 又顯得有點小麻煩.
最近用 Laravel 執行的專案較多, 原本找到一個 laravel adminer 的套件, 不過呢~它只有單純的英文版!!!
決定動手自己來打造一個具權限控制的 adminer 整合套件, 順便把繁體中文版本也加上去!!
套件名稱: onecentlin/laravel-adminer
Laravel Adminer Database Manager (Laravel 輕量資料庫管理工具)
初聲試啼~ 歡迎指教~ ^^
2015/11/02
[Laravel] ErrorException - file_put_contents
第一次遇到在更新 Laravel composer packages 後會現無法讀取檔案的錯誤
在該更新的檔案全都上傳完後,確認也都沒漏檔,仍然出現 Woops!
還好網站還沒上線,快速看一下 debug 有什麼線索
結果是:
先打開本機的 services.json,內容是 providers 的 class 及一些設定
單純把檔案蓋掉,問題就沒了,但納悶的是,為什麼 composer 會寫到這個 cache 而且還要讀取呢?基本上它又是 ignore 的檔案...
先記錄一下,下回再遇到,先看 cache/services.json 檔案是否有更新吧!
後記:試著直接把 services.json 檔案砍掉, 網站也不會出錯~看來應該是被 composer 拿來暫時比對用的。那麼就別留了,反正它本來就是該被 ignore 的!
後記加註:composer update 或 安裝 packages 後,記得再多做一個步驟
在該更新的檔案全都上傳完後,確認也都沒漏檔,仍然出現 Woops!
還好網站還沒上線,快速看一下 debug 有什麼線索
結果是:
[ErrorException]
file_put_contents(/project/bootstrap/cache/services.json): failed to open stream: No such file or directory
先打開本機的 services.json,內容是 providers 的 class 及一些設定
單純把檔案蓋掉,問題就沒了,但納悶的是,為什麼 composer 會寫到這個 cache 而且還要讀取呢?基本上它又是 ignore 的檔案...
先記錄一下,下回再遇到,先看 cache/services.json 檔案是否有更新吧!
後記:試著直接把 services.json 檔案砍掉, 網站也不會出錯~看來應該是被 composer 拿來暫時比對用的。那麼就別留了,反正它本來就是該被 ignore 的!
後記加註:composer update 或 安裝 packages 後,記得再多做一個步驟
php artisan clear-compiled
這個檔案就會被清掉了,果然它是不需要上 server 的!
2015/09/25
[Laravel] Gulp TDD - 出現 PHPUnit Permission Denied 的解決方法
今天小試一下 Laravel 的 php unit testing
基本跑 phpunit 成功沒問題
變更 gulpfile.js -- 使用 mix.phpUnit();
執行 gulp tdd -- 卻出現 ./vendor/bin/phpunit: Permission denied
基本跑 phpunit 成功沒問題
變更 gulpfile.js -- 使用 mix.phpUnit();
執行 gulp tdd -- 卻出現 ./vendor/bin/phpunit: Permission denied
2015/06/19
[Laravel] 用 Composer 安裝特定版本的 Laravel
僅管現在 Laravel 已經釋出 5.1 版, 目前還是遇到客戶主機環境太舊, 僅能跑 PHP 5.3 的版本
所以至少還是會安裝 Laravel 4.1 的版本
如果要裝最新的版本, 就參照官方的使用方法, 下載 laravel 安裝套件
所以至少還是會安裝 Laravel 4.1 的版本
composer create-project laravel/laravel [ProjectName] 4.1.*
如果要裝最新的版本, 就參照官方的使用方法, 下載 laravel 安裝套件
laravel new [ProjectName]
2015/06/18
[Laravel] Laravel 4.1 環境偵測 - 第二彈
預設的環境偵測寫法有點不太好用
以電腦的 hostname 來做分 local, 始終覺得不方便
尤其不是只有用單一電腦來做開發
換了電腦, 名稱又變更, 要一直改來改去好像也不是太好的做法
而且也不想把自己所有的主機名稱都放上去主機端
最終我決定用我開發的 vhost 來取決是否為開發環境
只要不是開發用的 vhost, 那麼就都視為正式環境
以後專案只要複製以下 code, 改掉開發 domain 即可~
修改的檔案: bootstrap/start.php
不過如果設定這個方法, 在用 migration 的時候需要指定 env 為哪一個
記錄一下, 以免未來又忘記了
以電腦的 hostname 來做分 local, 始終覺得不方便
尤其不是只有用單一電腦來做開發
換了電腦, 名稱又變更, 要一直改來改去好像也不是太好的做法
而且也不想把自己所有的主機名稱都放上去主機端
最終我決定用我開發的 vhost 來取決是否為開發環境
只要不是開發用的 vhost, 那麼就都視為正式環境
以後專案只要複製以下 code, 改掉開發 domain 即可~
修改的檔案: bootstrap/start.php
$env = $app->detectEnvironment(function() { return ($_SERVER['SERVER_NAME'] == "project.dev") ? "local" : "production"; });
不過如果設定這個方法, 在用 migration 的時候需要指定 env 為哪一個
php artisan migrate --evn=local
記錄一下, 以免未來又忘記了
訂閱:
文章 (Atom)













