Skip to content

Commit 6d88529

Browse files
committed
chore: 升級 Laravel 5.8 → 6.0
基於 Carbon 2.x 分支完成 Laravel 6.0 升級,包含所有必要的程式碼修改和配置更新。 ## 主要變更 ### 依賴套件升級 - Laravel Framework: 5.8.* → ^6.0 (v6.20.45) - Laravel Passport: 維持 ^7.0(相容 Laravel 6) - PHP 最低版本要求: >=7.1.3 → ^7.2 - PHPUnit: ^7.5 → ^9.5(支援 PHP 8.x) - Carbon: ^2.0(已在前序分支完成升級) ### Breaking Changes 修復 #### 1. array_except() 全域輔助函數移除(43 處修改) Laravel 6.0 移除了 array_except() 全域函數,統一使用 Arr::except() 靜態方法。 修改的檔案: - Controllers (9 個): - CodesController.php - BasicInformationController.php - BasicInformationAddressesController.php - BasicInformationAltnamesController.php - BasicInformationEntriesController.php - BasicInformationTextsController.php - BasicInformationOfficesController.php - BasicInformationSocialInstController.php - Api/BiogAddressController.php - Repositories (4 個): - BiogMainRepository.php (21 處) - AddrBelongsDataRepository.php - TextInstanceDataRepository.php - SocialInstitutionCodeRepository.php - Resources (1 個): - BiogMain.php 所有檔案均已新增 `use Illuminate\Support\Arr;` 並將 `array_except()` 替換為 `Arr::except()`。 #### 2. str_contains() 全域輔助函數移除(7 處修改) Laravel 6.0 移除了 str_contains() 全域函數,統一使用 Str::contains() 靜態方法。 修改的檔案: - CodesController.php (第 712-718 行) - 新增 `use Illuminate\Support\Str;` - 7 處 str_contains() 全部替換為 Str::contains() ### 套件移除與配置更新 #### naux/sendcloud 套件移除 該套件最高支援 Laravel 5.8,不相容 Laravel 6.0: - 從 composer.json 移除依賴 - 從 config/app.php 移除 SendCloudServiceProvider 註冊 - 影響功能:使用者註冊郵件(需尋找替代方案) ### CI/CD 配置更新 #### GitHub Actions Workflow - 移除已棄用的 `--no-suggest` 參數(Composer 2.0+ 不再支援) - 確保 CI 流程使用 PHP 7.4 執行測試 #### .gitignore 更新 - 新增 `.phpunit.result.cache` 忽略規則 - 修正格式錯誤(分離 version.txt 和 .phpunit.result.cache) ## 相容性說明 ### PHP 版本需求 - Laravel 6.0 最低要求:PHP 7.2 - Laravel 6.0 建議版本:PHP 7.2 - 7.4 - 專案目前配置:PHP 7.4(符合建議範圍) ### 已知限制 1. **SendCloud 郵件服務移除** - 原因:naux/sendcloud 套件不支援 Laravel 6 - 影響:RegisterController.php 中的郵件發送功能 - 後續:需評估替代方案(如 AWS SES、SendGrid 等) 2. **PHP 8.x 相容性警告** - 在 PHP 8+ 環境執行會產生棄用警告 - 不影響實際功能運作 - 建議在 PHP 7.4 環境部署 ## 測試狀態 ### 本地測試 - Composer 依賴安裝:✅ 成功 - PHPUnit 版本:9.6.29 - 測試環境:PHP 8.4(有棄用警告,預期行為) ### CI/CD 測試 - GitHub Actions 環境:PHP 7.4 - 預期結果:測試應正常通過 ## 升級路徑 ``` Laravel 5.6 + Carbon 1.x ↓ (PR cbdb-project#462) Laravel 5.7 + Carbon 1.x ↓ (PR cbdb-project#467) Laravel 5.8 + Carbon 1.x ↓ (PR cbdb-project#473) Laravel 5.8 + Carbon 2.x ↓ (本次升級) Laravel 6.0 + Carbon 2.x ✅ ``` ## 參考文件 - Laravel 6.x 升級指南:https://laravel.com/docs/6.x/upgrade - 詳細升級說明:UPGRADE_INSTRUCTIONS.md - Carbon 2.x 升級:已在 PR cbdb-project#473 完成 ## 檢查清單 - [x] 所有 array_except() 已替換為 Arr::except() - [x] 所有 str_contains() 已替換為 Str::contains() - [x] composer.json 版本已更新 - [x] composer.lock 已更新 - [x] 移除不相容的套件(naux/sendcloud) - [x] 更新服務提供者註冊 - [x] CI/CD 配置已更新 - [x] .gitignore 已更新 - [x] 基於最新 develop 分支 rebase
1 parent a839125 commit 6d88529

19 files changed

Lines changed: 849 additions & 808 deletions

.github/workflows/phpunit.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ jobs:
2929
coverage: none
3030

3131
- name: Install dependencies
32-
run: composer install --prefer-dist --no-progress --no-suggest
32+
run: composer install --prefer-dist --no-progress
3333

3434
- name: Prepare environment
3535
run: |

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,5 @@ Homestead.yaml
1010
npm-debug.log
1111
yarn-error.log
1212
.env
13-
version.txt
13+
version.txt
14+
.phpunit.result.cache

app/Http/Controllers/Api/BiogAddressController.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
use App\Repositories\ToolsRepository;
1010
use Illuminate\Http\Request;
1111
use App\Http\Controllers\Controller;
12+
use Illuminate\Support\Arr;
1213
use Illuminate\Support\Facades\DB;
1314

1415
class BiogAddressController extends Controller
@@ -64,7 +65,7 @@ public function store($id, Request $request)
6465
}
6566
$data['c_addr'] = 0;
6667
$data = $request->all();
67-
$data = array_except($data, ['_token']);
68+
$data = Arr::except($data, ['_token']);
6869
$data['c_personid'] = $id;
6970
$data['c_fy_intercalary'] = (int)($data['c_fy_intercalary']);
7071
$data['c_ly_intercalary'] = (int)($data['c_ly_intercalary']);
@@ -123,7 +124,7 @@ public function update(Request $request, $id, $addr_id)
123124
$data['c_fy_intercalary'] = (int)($data['c_fy_intercalary']);
124125
$data['c_ly_intercalary'] = (int)($data['c_ly_intercalary']);
125126

126-
$data = array_except($data, ['_method', '_token']);
127+
$data = Arr::except($data, ['_method', '_token']);
127128
$data = $this->toolsRepository->timestamp($data);
128129
DB::table('BIOG_ADDR_DATA')->where('tts_sysno',$addr_id)->update($data);
129130
// dd(DB::table('BIOG_ADDR_DATA')->where('tts_sysno',$id)->first());

app/Http/Controllers/BasicInformationAddressesController.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
use App\TextCode;
1212
use Carbon\Carbon;
1313
use Illuminate\Http\Request;
14+
use Illuminate\Support\Arr;
1415
use Illuminate\Support\Facades\Auth;
1516
use Illuminate\Support\Facades\DB;
1617

@@ -74,7 +75,7 @@ public function store(Request $request, $id)
7475
return redirect()->back();
7576
}
7677
$data = $request->all();
77-
$data = array_except($data, ['_token']);
78+
$data = Arr::except($data, ['_token']);
7879
$data['c_personid'] = $id;
7980
$data['c_fy_intercalary'] = (int)($data['c_fy_intercalary']);
8081
$data['c_ly_intercalary'] = (int)($data['c_ly_intercalary']);
@@ -216,7 +217,7 @@ public function update(Request $request, $id, $addr)
216217
$data['c_fy_intercalary'] = (int)($data['c_fy_intercalary']);
217218
$data['c_ly_intercalary'] = (int)($data['c_ly_intercalary']);
218219

219-
$data = array_except($data, ['_method', '_token']);
220+
$data = Arr::except($data, ['_method', '_token']);
220221
$data = $this->toolsRepository->timestamp($data);
221222
$addr = str_replace("--","-minus",$addr);
222223
$addr_l = explode("-", $addr);

app/Http/Controllers/BasicInformationAltnamesController.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
use App\TextCode;
99
use Carbon\Carbon;
1010
use Illuminate\Http\Request;
11+
use Illuminate\Support\Arr;
1112
use Illuminate\Support\Facades\Auth;
1213
use Illuminate\Support\Facades\DB;
1314

@@ -71,7 +72,7 @@ public function store(Request $request, $id)
7172
return redirect()->back();
7273
}
7374
$data = $request->all();
74-
$data = array_except($data, ['_token']);
75+
$data = Arr::except($data, ['_token']);
7576
$data['c_personid'] = $id;
7677
$data = $this->toolsRepository->timestamp($data, True);
7778
$temp = DB::table('ALTNAME_DATA')->where([
@@ -157,7 +158,7 @@ public function update(Request $request, $id, $alt)
157158
return redirect()->back();
158159
}
159160
$data = $request->all();
160-
$data = array_except($data, ['_method', '_token']);
161+
$data = Arr::except($data, ['_method', '_token']);
161162
$data = $this->toolsRepository->timestamp($data);
162163
$alt = str_replace("--","-minus",$alt);
163164
//20200709聯合主鍵保留字弱點防禦函式,解析保留字。

app/Http/Controllers/BasicInformationController.php

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
use App\Repositories\YearRangeRepository;
1515
use Carbon\Carbon;
1616
use Illuminate\Http\Request;
17+
use Illuminate\Support\Arr;
1718
use Illuminate\Support\Facades\Auth;
1819

1920
use App\Pinyin;
@@ -236,7 +237,7 @@ public function Duplicate_Collateral_Info($id)
236237
foreach ($addr as $addr_data) {
237238
$addr_data = (array)$addr_data;
238239
$addr_data['c_personid'] = $new_id;
239-
$addr_data = array_except($addr_data, ['_token']);
240+
$addr_data = Arr::except($addr_data, ['_token']);
240241
$addr_data = $this->toolRepository->timestamp($addr_data, True); //建檔資訊
241242
DB::table('BIOG_ADDR_DATA')->insert($addr_data);
242243
$this->operationRepository->store(Auth::id(), $new_id, 1, 'BIOG_ADDR_DATA', $addr_data['c_personid']."-".$addr_data['c_addr_id']."-".$addr_data['c_addr_type']."-".$addr_data['c_sequence'], $addr_data);
@@ -249,7 +250,7 @@ public function Duplicate_Collateral_Info($id)
249250
foreach ($source as $source_data) {
250251
$source_data = (array)$source_data;
251252
$source_data['c_personid'] = $new_id;
252-
$source_data = array_except($source_data, ['_token']);
253+
$source_data = Arr::except($source_data, ['_token']);
253254
DB::table('BIOG_SOURCE_DATA')->insert($source_data);
254255
$this->operationRepository->store(Auth::id(), $new_id, 1, 'BIOG_SOURCE_DATA', $source_data['c_personid']."-".$source_data['c_textid']."-".$source_data['c_pages'], $source_data);
255256
}
@@ -321,7 +322,7 @@ public function Duplicate_Collateral_Info($id)
321322
foreach ($inst as $inst_data) {
322323
$inst_data = (array)$inst_data;
323324
$inst_data['c_personid'] = $new_id;
324-
$inst_data = array_except($inst_data, ['_token']);
325+
$inst_data = Arr::except($inst_data, ['_token']);
325326
$inst_data = $this->toolRepository->timestamp($inst_data, True); //建檔資訊
326327
DB::table('BIOG_INST_DATA')->insert($inst_data);
327328
$this->operationRepository->store(Auth::id(), $new_id, 1, 'BIOG_INST_DATA', $inst_data['c_personid']."-".$inst_data['c_inst_code']."-".$inst_data['c_inst_name_code']."-".$inst_data['c_bi_role_code'], $inst_data);
@@ -334,7 +335,7 @@ public function Duplicate_Collateral_Info($id)
334335
foreach ($status as $status_data) {
335336
$status_data = (array)$status_data;
336337
$status_data['c_personid'] = $new_id;
337-
$status_data = array_except($status_data, ['_token']);
338+
$status_data = Arr::except($status_data, ['_token']);
338339
$status_data = $this->toolRepository->timestamp($status_data, True); //建檔資訊
339340
DB::table('STATUS_DATA')->insert($status_data);
340341
$this->operationRepository->store(Auth::id(), $new_id, 1, 'STATUS_DATA', $status_data['c_personid'].'-'.$status_data['c_sequence'].'-'.$status_data['c_status_code'], $status_data);

app/Http/Controllers/BasicInformationEntriesController.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
use App\TextCode;
99
use Carbon\Carbon;
1010
use Illuminate\Http\Request;
11+
use Illuminate\Support\Arr;
1112
use Illuminate\Support\Facades\Auth;
1213
use Illuminate\Support\Facades\DB;
1314

@@ -77,7 +78,7 @@ public function store(Request $request, $id)
7778
return redirect()->route('basicinformation.entries.edit', ['id' => $id, '_id' => $_id]);
7879
*/
7980
$data = $request->all();
80-
$data = array_except($data, ['_token']);
81+
$data = Arr::except($data, ['_token']);
8182
$data['c_personid'] = $id;
8283
$data = $this->toolsRepository->timestamp($data, True);
8384
//20181217新增片段,api回傳值有-999需要轉為0
@@ -183,7 +184,7 @@ public function update(Request $request, $id, $id_)
183184
return redirect()->route('basicinformation.entries.edit', ['id'=>$id, 'id_'=>$id_]);
184185
*/
185186
$data = $request->all();
186-
$data = array_except($data, ['_method', '_token']);
187+
$data = Arr::except($data, ['_method', '_token']);
187188
$data = $this->toolsRepository->timestamp($data);
188189
//20181217新增片段,api回傳值有-999需要轉為0
189190
$data['c_entry_code'] = $data['c_entry_code'] == -999 ? '0' : $data['c_entry_code'];

app/Http/Controllers/BasicInformationOfficesController.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
use App\SocialInst;
1010
use Carbon\Carbon;
1111
use Illuminate\Http\Request;
12+
use Illuminate\Support\Arr;
1213
use Illuminate\Support\Facades\App;
1314
use Illuminate\Support\Facades\Auth;
1415
use Illuminate\Support\Facades\DB;
@@ -202,7 +203,7 @@ public function saveas($id, $cpk)
202203
}
203204
$data = $res2;
204205
$c_addr = $data2;
205-
$data = array_except($data, ['_token', 'c_addr']);
206+
$data = Arr::except($data, ['_token', 'c_addr']);
206207
$data['c_fy_intercalary'] = (int)($data['c_fy_intercalary']);
207208
$data['c_ly_intercalary'] = (int)($data['c_ly_intercalary']);
208209
$data['c_posting_id'] = DB::table('POSTED_TO_OFFICE_DATA')->max('c_posting_id') + 1;

app/Http/Controllers/BasicInformationSocialInstController.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
use App\TextCode;
99
use Carbon\Carbon;
1010
use Illuminate\Http\Request;
11+
use Illuminate\Support\Arr;
1112
use Illuminate\Support\Facades\Auth;
1213
use Illuminate\Support\Facades\DB;
1314

@@ -146,7 +147,7 @@ public function update(Request $request, $id, $id_)
146147
*/
147148

148149
$data = $request->all();
149-
$data = array_except($data, ['_method', '_token']);
150+
$data = Arr::except($data, ['_method', '_token']);
150151
$data = $this->toolsRepository->timestamp($data);
151152
//20210804在這裡處理c_inst_code傳遞過來的值,分別儲存至c_inst_code與c_inst_name_code欄位,$c_inst_name_code預設為0
152153
$temp = explode("-", $data['c_inst_code']);

app/Http/Controllers/BasicInformationTextsController.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
use App\TextCode;
99
use Carbon\Carbon;
1010
use Illuminate\Http\Request;
11+
use Illuminate\Support\Arr;
1112
use Illuminate\Support\Facades\Auth;
1213
use Illuminate\Support\Facades\DB;
1314

@@ -73,7 +74,7 @@ public function store(Request $request, $id)
7374
return redirect()->back();
7475
}
7576
$data = $request->all();
76-
$data = array_except($data, ['_token']);
77+
$data = Arr::except($data, ['_token']);
7778
$data['c_personid'] = $id;
7879
$data = $this->toolsRepository->timestamp($data, True);
7980
$temp = DB::table($this->table_name)->where([
@@ -136,7 +137,7 @@ public function update(Request $request, $id, $id_)
136137
return redirect()->back();
137138
}
138139
$data = $request->all();
139-
$data = array_except($data, ['_method', '_token']);
140+
$data = Arr::except($data, ['_method', '_token']);
140141
$data = $this->toolsRepository->timestamp($data);
141142
$temp_l = explode("-", $id_);
142143

0 commit comments

Comments
 (0)