標籤: Codeigniter

  • 用 ChatGPT 生成 Codeigniter4 Model Class

    用 ChatGPT 生成 Codeigniter4 Model Class

    走正向工程的話,規劃 DB 資料庫會遇到要轉成程式結構的問題,基本上沒有技術但是 Han 麻煩。這次嘗試用 ChatGPT 生成。

    使用 ChatGPT 4o 處理。

    目標:

    1. Mysql DDL File(.sql) 匯出 Create 指令,將其轉換為 CI4 的 Model Class 的程式碼。
    2. Model Class 繼承 BaseModel Class,BaseModel 是一個把一些基礎的操作和變數寫好的 Class ,繼承 CodeIgniter\Model 。
    3. 使用 ChatGPT 生成,儘量不要還得手動調整。

    附上提示詞連結:

    操作過程也紀錄一下:

    1. 一開始拿一個 table 的 create 指令生成,最終請它產生提示內容。
    2. 將 .sql 檔案匯出,確保都是 create 指令。
    3. 匯入 ChatGPT 並且使用提示提請它提供生成檔案 zip 連結。
    4. 下載確認與修正 loop:
      • 確保 MySQL 檔案中的備註有放到 PHP 裡面
      • 移除 fk 會填入欄位的問題
      • 移除 index 等 key 會重複填入欄位的問題
      • 移除驗證規則(這個 case 不需要)
      • 添加 Class 註釋,包含日期、作者、 MySQL 中於 table 的註解。

    匯出了好多檔案

    看這版本,有種提案給客戶的設計稿的感覺。屠龍者終成惡龍阿。

    補一個操作畫面:

  • ionCube 加密/混淆 PHP for Codeigniter4 筆記

    ionCube 加密/混淆 PHP for Codeigniter4 筆記

    前陣子在搞 Android 的混淆,在第三方套件和映射的機制上吃了不少苦頭,最近嘗試把 codeigniter4 做加密,選擇使用 ionCube 套件。這套件並非免費的,pro 版本折合台幣大約 10k 左右,也是不便宜,而選擇他的優點有幾個:

    • 目前最新版尚未有破解、解密的服務。
    • 加密功能選項完整,可設定 ip 限制、網域限制、限制時間等以及外部金鑰檔案等等。參考
    • 可選作混淆功能(不過這樣不會很難 debug 嗎?)
    • 可設定需要加密的檔案,並非直接整個專案加密。
    • 可以設定非 PHP 檔案加密(未嘗試)
    • 可執行 hook 等多種設定,詳細參考官網

    估計他的版本週期是跟著 PHP 版本走的, 所以購買最佳實機應該是在 PHP 出了一個新版本之後再來購買會比較好。

    而他簡單實作的是無框架的 PHP 服務。我針對使用 Codeigniter 4 的框架做了加密動作,以下筆記幾個注意事項:

    1. 可加密的範圍是 app/ 內除了 Config/ 資料夾以外的檔案資料夾。參考圖一
    2. 設定專案時可以把整個專案設定在內,除了可加密範圍之外,其他選擇 copy 動作。
    3. skip 的動作可以是 .DS_Store、 .user.ini 等等或是其他不想要發布的檔案,可充當過濾檔案使用。
    4. 混淆的選項請不要混淆 class 和 method ,弄個不好會有名字對不起來的問題。參考。更建議連 function 也別混淆,呼叫操作很容易對不上的。
      update:解決方法可以參考這裡,不過尚未嘗試。
    5. 如果使用 git 發布的話,要記得考慮清楚原始未加密的程式碼是否也要上 git。
    6. 有部分版本無法加密,參考
    7. 伺服器要能夠安裝 ionCube loader 套件,這滿重要的,不裝起來會無法讀取,如果有設定金鑰的話也需要確認是否可以放置。

    以上。

    圖一。 可加密的檔案範圍。
    圖二。混淆功能選項。
    圖三。截至 2024-03-09 所支援的加密版本。