iT邦幫忙

laravel相關文章
共有 1167 則文章
鐵人賽 Modern Web DAY 10

技術 Day 09:表單裡選關聯資料,下拉選單背後在做什麼

Day 08:Action 是什麼,表格列、頁首、表單內三種掛載位置 結尾留下一句話,商品表單裡目前七個既有欄位,加上圖片欄位,說到底都是商品自己身上的屬性,價...

鐵人賽 Software Development DAY 21

技術 Day 21:定期爬取外部網頁——Generator 分頁 + PSR-18 discovery + retry plugin 組合技

前言:一支只有 38 行的類別,可以塞進多少個技巧? 「爬取外部資料的邏輯,不就是發個請求、解析回應嗎?能有多複雜?」 今天要看的這個 Crawler 類別,全...

鐵人賽 Modern Web DAY 9

技術 Day 08:Action 是什麼,表格列、頁首、表單內三種掛載位置

Day 07:讓大量資料可用,篩選、排序與搜尋 結尾點出一個新的落差,就算篩選出一群目標商品,例如所有已下架的清潔用品,表格上目前沒有任何一顆按鈕可以讓使用者對...

鐵人賽 Software Development DAY 20

技術 Day 20:XML 容錯——抄一篇公開文章的解法,也要懂它在防什麼

前言:防禦手法一定要自己想出來,才算真的懂嗎? 「這段清理非法字元的 regex 看起來很複雜,是自己想出來的嗎?」 今天要看的這段程式碼,作者的答案很誠實:不...

鐵人賽 Modern Web DAY 8

技術 Day 07:讓大量資料可用,篩選、排序與搜尋

Day 06:表格欄位怎麼呈現,格式化與縮圖顯示 結尾留下一句話,今天這批改善只用商品模組現有的少量測試資料驗證過,資料筆數不多的時候,就算每一欄都排得再好看,...

鐵人賽 Software Development DAY 19

技術 Day 19:SOAP 逾時防護——從「先能動」到「補上超時控制」的真實演進

前言:「先讓它動起來」跟「一開始就設計完善」,真實專案通常是哪一種? 「跟外部系統對接的程式碼,逾時控制不是一開始就該設計好嗎?」 理論上是這樣沒錯。但今天要老...

鐵人賽 Modern Web DAY 7

技術 Day 06:表格欄位怎麼呈現,格式化與縮圖顯示

Day 05:表單版面配置,用 Schema 排出一份不擁擠的表單 結尾留下一句話,Schema 這套表單與表格共用的定義方式,今天要延伸到表格這一側,商品列表...

鐵人賽 Software Development DAY 18

技術 Day 18:跟外部系統對接——SOAP 協議在 2026 年怎麼用 PSR-18 包起來用

前言:SOAP 已經是老技術了,為什麼現在還要學怎麼接? 「SOAP 不是很多年前的技術了嗎?現在講外部整合,大家講的都是 REST 或 GraphQL,為什麼...

鐵人賽 Modern Web DAY 6

技術 Day 05:表單版面配置,用 Schema 排出一份不擁擠的表單

《Day 04:表單欄位全解析,從文字輸入到日期選擇器》 結尾留下一句話,商品表單的七個欄位確實都選對了型別,但全部攤平排在同一個頁面上,開始顯得擁擠,這個版面...

鐵人賽 Software Development DAY 17

技術 Day 17:Service Container 實戰——SOAP Client 怎麼用 Factory 綁定

前言:bind 跟 singleton,這個系統怎麼選? 「Service Container 的 bind 跟 singleton 差在哪,官方文件講得很清楚...

鐵人賽 Modern Web DAY 5

技術 Day 04:表單欄位全解析,從文字輸入到日期選擇器

《Day 03:建立第一個 Resource,五分鐘做出一套 CRUD 介面》結尾留下一句話,今天生成的表單欄位還是最基本的預設樣式,分類要用什麼方式選擇,上架...

鐵人賽 Software Development DAY 16

技術 Day 16:Event/Listener——登入事件怎麼靠自動探索變成一筆審計紀錄

前言:這支 Listener 從來沒被手動註冊過,它是怎麼被觸發的? 「Listener 不是要在 EventServiceProvider 裡把 Event...

鐵人賽 Modern Web DAY 4

技術 Day 03:建立第一個 Resource,五分鐘做出一套 CRUD 介面

《Day 02:安裝與第一個 Panel,認識這個後台入口容器》 結尾留下一句話,容器蓋好了,裡面還是空的,明天要放進第一件真正有內容的東西,商品管理介面。今天...

鐵人賽 Software Development DAY 15

技術 Day 15:Observer 兩種註冊方式對照——PHP 8 Attribute vs ServiceProvider

前言:同一個系統裡,Observer 為什麼有兩種不同的註冊寫法? 「Eloquent Observer 不就是在 ServiceProvider 裡 Mode...

鐵人賽 Modern Web DAY 3

技術 Day 02:安裝與第一個 Panel,認識這個後台入口容器

《Day 01:為什麼是 Filament,跟手刻後台與其他套件比起來差在哪》 結尾留下一句話,決策依據講得再清楚,終究只是紙上談兵,真正要驗證的,是把 Fil...

鐵人賽 Software Development DAY 14

技術 Day 14:一支 Job 該做多少事?從 16 行 vs 120 行的 Job 看職責邊界

前言:Job 越寫越長,是什麼時候開始不對勁的? 「這支 Job 一開始只是抓資料寫進資料庫,後來陸續加了同步關聯、處理附件、呼叫另一支 Job……現在已經 1...

鐵人賽 Modern Web DAY 2

技術 Day 01:為什麼是 Filament,跟手刻後台與其他套件比起來差在哪

《Day 00:Laravel Filament 從入門到實戰,30 天規劃》 結尾留下一句話,選擇 Filament,賭的是「開發速度」與「客製化彈性」能不能...

鐵人賽 Modern Web DAY 1

技術 Day 00:Laravel Filament 從入門到實戰,30 天規劃

第一次看到這系列文章的你,如果你已經寫過幾個 Laravel 專案,大概都經歷過同一個階段。功能做得差不多了,客戶或主管突然問一句,那後台管理介面呢,能不能讓我...

鐵人賽 Software Development DAY 13

技術 Day 13:Queue Job 基礎——用 Generator 安全迭代日期區間去抓外部資料

前言:抓一整年的資料,跟抓一天的資料,用的應該是同一支 Job 嗎? 「這支 Job 要去外部系統抓新聞,抓一天的資料很快,但如果哪天要補抓過去一整年的資料呢?...

鐵人賽 Software Development DAY 12

技術 Day 12:一個 Content-Type 的 bug——sitemap.xml 為什麼 Google 解析不了

前言:sitemap 產生了、路由也對了,為什麼 Google 說讀不到? 昨天講完 sitemap:generate 這支指令怎麼把 sitemap.xml...

鐵人賽 Software Development DAY 11

技術 Day 11:排程 sitemap 自動產生——為什麼「產生」跟「回應請求」要刻意拆開

前言:sitemap.xml 應該是即時算出來的,還是預先算好的? 「使用者或搜尋引擎爬蟲請求 sitemap.xml 的時候,即時查資料庫組出 XML 回傳,...

鐵人賽 Software Development DAY 10

技術 Day 10:一支 Command,修一次資料遷移後留下的欄位缺失

前言:不是所有 Command 都要設計成可以重複執行 「Artisan Command 不是應該寫成通用、可重複執行的工具嗎?」 大部分教學會教你把 Comm...

鐵人賽 Software Development DAY 9

技術 Day 09:角色可見性控制——為什麼最高權限角色不能靠一般權限判斷保護

前言:如果一個角色能編輯所有角色,包括「能編輯所有角色」這個角色本身呢? 「權限管理不就是判斷『這個使用者有沒有某個權限字串』嗎?」 昨天看到的 BannerP...

鐵人賽 Software Development DAY 8

技術 Day 08:Policy 授權基礎——一份 Policy 檔案怎麼決定誰能看見什麼

前言:權限判斷寫在 Controller 裡,跟寫在 Policy 裡,差在哪? 「權限判斷不就是 if ($user->role === 'admin'...

鐵人賽 Software Development DAY 7

技術 Day 07:Model Factory 語意化設計——用具名 state 表達建立資料的意圖

前言:測試資料要用什麼身份建立,寫在哪裡比較好? 「測試資料就是隨便造幾筆,反正跑完測試就丟掉,有什麼好講究的?」 資料本身或許不需要講究,但建立資料的方式,決...

鐵人賽 Software Development DAY 6

技術 Day 06:Backed Enum 玩法——用類別常數當 enum 值做型別查找表

前言:一個字串欄位,怎麼變成一個安全的型別? 「資料庫存的是字串,程式碼裡拿字串來比對,有什麼問題嗎?」 字串比對能動,但它有一個天生的弱點:打錯一個字、大小寫...

鐵人賽 Software Development DAY 5

技術 Day 05:查詢邏輯怎麼寫成可組合的 Query Scope Class

前言:where 條件寫在 Controller 裡,跟寫在別的地方,差在哪? 「查詢條件不就是一串 where 嗎?寫在 Controller 裡,寫在 Mo...

鐵人賽 Software Development DAY 4

技術 Day 04:一個 Model 身兼多職——Page 怎麼用 Nested Set 疊動態型別撐起整個頁面樹

前言:一個 Model 可以同時做幾件事? 「一個 Model 對應一張資料表,這不是很單純的事嗎?」 大部分教學範例裡的 Model 確實單純——一個欄位對應...

鐵人賽 Software Development DAY 3

技術 Day 03:Model 嚴格模式抓出的一個真實 N+1 與一個藏了很久的 typo

前言:「這段程式碼能動」跟「這段程式碼沒問題」是兩回事 「這個功能上線好一段時間了,也沒人回報問題,代表程式碼沒問題吧?」 這句話有一個隱藏的前提:沒人回報,不...

鐵人賽 Software Development DAY 2

技術 Day 02:Eloquent 模型設計——一段字串處理邏輯,為什麼後來搬進了 Model

前言:這段邏輯到底該寫在 View 裡,還是 Model 裡? 「Blade 裡直接寫 Str::limit($content, 100) 有什麼問題嗎?反正畫...