TYEYDY

快樂生活 | 身體健康

0%

Laravel 11 有異動許多地方,RouteServiceProvider、AuthServiceProvider… 都統一在AppServiceProvider中處理

新增一個會員的驗證機制來作為範例

  • config/auth.php
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    'guards' => [
    'web' => [
    'driver' => 'session',
    'provider' => 'users',
    ],
    'member' => [
    'driver' => 'session',
    'provider' => 'members',
    ],
    ],

    'providers' => [
    'users' => [
    'driver' => 'eloquent',
    'model' => env('AUTH_MODEL', App\Models\User::class),
    ],

    'members' => [
    'driver' => 'member',
    'model' => App\Models\Member::class,
    ],
    ],
閱讀全文 »

Laravel Test 單一測試使用多個使用者

遇到的問題

測試新增兩位會員,使用Laravel Sanctum 驗證方式,測試取得會員資料

單獨一個使用者測試沒有問題,但兩位使用者會驗證失敗,會是相同的會員

第二筆回傳的會員資料會是第一筆會員資料

失敗的測試程式碼

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
public function test_profile() {
// 建立會員
$member1 = Member::factory()->create();
$token = $member1->createToken('test')->plainTextToken;
$header1['Authorization'] = 'Bearer ' . $token;

$member2 = Member::factory()->create();
$token = $member2->createToken('test')->plainTextToken;
$header2['Authorization'] = 'Bearer ' . $token;

// 取得會員資料
$res = $this->json('get', route('member.profile'), [], $header1)
->assertOk()
->assertJson([
'code' => '0',
]);
$content = json_decode($res->getContent(), true);

// testing fail
$this->assertEquals($member->phone, $content['data']['profile']['phone']);

$res = $this->json('get', route('member.profile'), [], $header1)
->assertOk()
->assertJson([
'code' => '0',
]);
$content = json_decode($res->getContent(), true);

// testing pass
$this->assertEquals($member->phone, $content['data']['profile']['phone']);
}
閱讀全文 »

問題

安裝Linux php7.4時,發現Ubuntu 22.04不支援php7.4

1
$ apt-get install php7.4-fpm -y

Reading package lists… Done
Building dependency tree… Done
Reading state information… Done
Package php7.4 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package ‘php7.4’ has no installation candidate

解決方法

安裝舊版的套件包

1
2
$ add-apt-repository ppa:ondrej/php && apt update -y
$ update-alternatives --config php

參考網站:

PHP ZipArchive 壓縮檔案數量不正確

問題

上傳了一個縮檔檔 (file.zip),內包含兩個圖片

使用程式碼解壓縮,逐一上傳到伺服器

1
2
3
4
$zip = new \ZipArchive();
for ($i = 0; $i < $zip->numFiles; $i++) {
// 上傳檔案
}

但發現 $zip->numFiles 的數量不正確,有四個檔案

查詢所有的$ file_name,發現有兩個檔案是 __MACOSX/._ 開頭的檔案

1
2
3
4
$zip = new \ZipArchive();
for ($i = 0; $i < $zip->numFiles; $i++) {
$stat = $zip->statIndex($i);
}
1
2
3
4
local.INFO: stat [{"name":"pic1.jpg","index":0,"crc":386404580,"size":42992,"mtime":1714363176,"comp_size":38074,"comp_method":8,"encryption_method":0}]
local.INFO: stat [{"name":"__MACOSX/.pic1.jpg","index":1,"crc":44379887,"size":340,"mtime":1714363176,"comp_size":197,"comp_method":8,"encryption_method":0}]
local.INFO: stat [{"name":"pic2.jpg","index":2,"crc":1810608204,"size":13140,"mtime":1714361602,"comp_size":9669,"comp_method":8,"encryption_method":0}]
local.INFO: stat [{"name":"__MACOSX/.pic2.jpg","index":3,"crc":2480374228,"size":340,"mtime":1714361602,"comp_size":214,"comp_method":8,"encryption_method":0}]

__MACOSX/ 是一個在 macOS 系統中創建的 zip 檔案可能會包含的特殊目錄。當你在 macOS 中使用內建的壓縮工具來創建 zip 檔案時,系統會自動在 zip 檔案中創建一個名為 __MACOSX/ 的目錄。

解決方法

判斷開頭為 __MACOSX/._ 的檔案,不進行上傳

1
2
3
4
5
6
7
8
for ($i = 0; $i < $zip->numFiles; $i++) {
$stat = $zip->statIndex($i);
if (strpos($entry, '__MACOSX/') === 0) {
// This is a __MACOSX/ entry, skip it
continue;
}
// 上傳檔案
}

以下幾種方法可以將 PDF 顯示在 網頁中

embed

1
2
<embed src="http://example.com/the.pdf" width="500" height="375" 
type="application/pdf">
  • 好處:鑲嵌簡單
  • 壞處:在手機瀏覽器中顯示會有問題,如果可以使用另開視窗顯示也是一種方法
閱讀全文 »

介紹

  • Portrait of Pirates One Piece POP WA-MAXIMUM 和之國大和
  • 購入價格: 5,680
  • 購入地點: 轉蛋概念館(預購)
  • 全新台版
POP MAX 和之國大和
閱讀全文 »

緣由

由於主機內部的Golang程式,會因為不明原因Crash 服務被 kill掉

造成API連線不到,需要監聽來第一時間告知發生問題,緊急處理

可以用來監聽 API 是否是正常的 200 回應

或是 主機的服務是否正常

如果不正常可以透過Line Notify 通知之類的

閱讀全文 »