2024年12月29日 星期日

Yii2:使用 eseperio/yii2-url-shortener 建立短網址 ( short url )

適用沒有放到 https://asset-packagist.org 的以 composer 安裝的套件。

找到這個Yii短網址套件,

到套件的 composer.json 看,

套件名稱是 eseperio/yii2-url-shortener

$ composer require "eseperio/yii2-url-shortener:~1.0.0"

顯示找不到套件

Root composer.json requires eseperio/yii2-url-shortener, it could not be found in any version, there may be a typo in the package name.

所以找以本地目錄安裝的方法。

到套件庫下載程式

https://github.com/Eseperio/yii2-url-shortener/

放到和 yii2 的 composer.json 同一個目錄

或是在yii2的 composer.json 同目錄下

$git clone https://github.com/Eseperio/yii2-url-shortener.git


在 yii2 的 composer.json 最底部,修改成

"repositories": [
        {
            "type": "composer",
            "url": "https://asset-packagist.org"
        },
        {
          "type": "path",
          "url": "./yii2-url-shortener",
          "optioin": {
            "symlink": false
          }
        }
    ]


這裡的資料就像是在 Linux 中指定的套件庫,

原本只有 https://asset-packagist.org,

新增的  "url": "./yii2-url-shortener", 就是本地套件位置。


之後照以 composer 安裝套件的方法,

 $ composer require "eseperio/yii2-url-shortener:~1.0.0"

 出現錯誤訊息:

Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Root composer.json requires eseperio/yii2-url-shortener ~1.0.0, found eseperio/yii2-url-shortener[dev-master] but it does not match the constraint.

 

改成

 $ composer require "eseperio/yii2-url-shortener:dev-master"

順利安裝

 

使用前先確認config/db.php 中設定的 database 可正確連接,

把套件的 database 設定檔複製到網站的 migrations 資料夾內

如果是用basic架構,可能要先建立 migrations 資料夾

$mkdir migrations

$cp vendor/eseperio/yii2-url-shortener/src/migrations/m190703_104610_add_shortener_table.php migrations/

如果是 advance 架構,

放到 console/migrations 資料夾。

$cp vendor/eseperio/yii2-url-shortener/src/migrations/m190703_104610_add_shortener_table.php console/migrations/

自動建立套件需要的資料庫表格:

$./yii migrate/to 190703_104610

Yii Migration Tool (based on Yii v2.0.51)

Total 1 new migration to be applied:
        m190703_104610_add_shortener_table

Apply the above migration? (yes|no) [no]:yes
*** applying m190703_104610_add_shortener_table
    > create table {{%yii2_shortener}} ... done (time: 0.022s)
    > create unique index shortenedUrl on {{%yii2_shortener}} (shortened) ... done (time: 0.038s)
*** applied m190703_104610_add_shortener_table (time: 0.069s)


1 migration was applied.

Migrated up successfully.


參考資料:


Composer: Using your own local package

https://darkghosthunter.medium.com/composer-using-your-own-local-package-2b252670d429

沒有留言:

張貼留言