顯示具有 Laravel 標籤的文章。 顯示所有文章
顯示具有 Laravel 標籤的文章。 顯示所有文章

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 了)

環境

 https://www.laravel-dojo.com/opensource/wagon


2018/09/09

[Laravel] Laravel 5.7 的新功能: dump-server

過去在 Laravel 想要取得執行當下的變數,不是 echo 出來,就是用 dd() 來印出變數值。
但如此動作總是中斷開發流程,又造成版面破版。

在剛釋出的 Laravel 5.7.x 版提供了一個新的 artisan 指令 dump-server

可以把要查看的變數或資訊印在 console視窗,又不造成中斷開發或視覺破版。

 

先讓 Laravel 執行一般網站模式,再開啟 dump-server 來監聽 dump()



若要取消監聽,用 Ctrl + C 即可中止。

2018/05/06

[Laravel] 解決使用 Laravel Mix 執行 npm 出現 sass 編譯失敗

快速筆記

在開發 Laravel 專案時,使用 Laravel Mix 來打包前端資源時出現編譯錯誤

這錯誤主要出現在編譯 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 的專案環境

設置環境

準備檔案

  1. nginx
  2. Visual C++ 可轉散發套件
  3. 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 環境設定

大多數 在 Windows OS 下執行 Laravel 專案都會用 WAMP 環境 - 像是 wagon, UwAmp, 或是 Xampp 以 Apache 為 server 為基礎的伺服器環境.

今天來點不一樣的~ 用 Windows IIS 來架設 PHP 專案環境.

重要的是在 Windows 10 的 IIS 上安裝 PHP Manager 及 URL Rewrite 有些小細節需要微調



2016/07/28

[Laravel] 版本 5.3 的資料夾結構改變

Laracon US 2016 正在如火如荼地展開中, 當然其中的亮點是即將發佈的 Laravel 5.3

在新功能搶先看之前, 先瞭解新版資料結構的改變

Laravel 5.3 的資料夾結構



2016/07/13

[Laravel] 解決 Failed to listen on 0.0.0.0:8000 的問題

第一次遇到 Failed to listen on 0.0.0.0:8000 這個問題

完整的報錯訊息:
Failed to listen on 0.0.0.0:8000  (reason: 嘗試存取通訊端被拒絕,因為存取權限不足。)



1. 先檢查是否有其他 service 用到 8000 的 port

2016/06/24

[Laravel] 如何連接 SQL Server 資料庫及注意事項

通常開發 Laravel 使用的資料庫大多為 MySQL 或是 Sqlite, 今天遇到網友發問連線至 MS SQL Server 的問題.

我好像也沒真正去連 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):
  • 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

我想這是常常遇到的雷, 沒有記錄下來總是會忘記

目前測試的版本:
  • 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 指令

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 輕量資料庫管理工具)


初聲試啼~ 歡迎指教~ ^^


2015/11/02

[Laravel] ErrorException - file_put_contents

第一次遇到在更新 Laravel composer 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

2015/06/19

[Laravel] 用 Composer 安裝特定版本的 Laravel

僅管現在 Laravel 已經釋出 5.1 版, 目前還是遇到客戶主機環境太舊, 僅能跑 PHP 5.3 的版本

所以至少還是會安裝 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

$env = $app->detectEnvironment(function() {
    return ($_SERVER['SERVER_NAME'] == "project.dev") ? "local" : "production";
});

不過如果設定這個方法, 在用 migration 的時候需要指定 env 為哪一個
php artisan migrate --evn=local

記錄一下, 以免未來又忘記了