跳到主要內容

安裝composer

Composer,其實就是作曲家(咦?!那跟php有什麼關係...。),請忽略剛剛(消音-嗶)
Composer其實是個依賴管理的工具,簡言之就是,說明目前這個專案需要用到哪些套件或函式庫。所以設定需要的套件或函式庫後,執行composer會產生一個目錄(例如vendor)存放你在設定上的那些套件。

設定範例,產生一個composer.json加入zendframework
{
    "require": {
        "zendframework/zendframework": "2.2.*"
    }
}

那麼要如何安裝呢?首先當然得先有composer,所以我們先去下載composer

在Linux底下
curl -sS https://getcomposer.org/installer | php

這樣就可以在當前目錄下取得composer.phar檔案
如何使用呢?
# 可以看到指令列表
php composer.phar list
# 或是直接執行
./composer.phar list

# 建立了composer.json,必須先進行install
./composer.phar install

# 更新套件
./composer.phar update

# 顯示已加入的套件
./composer.phar show -i


上面都是加入別人的套件,以下就來談談如何建立自己的套件。
# 在套件資料夾下執行
./composer.phar init

# 接著就會產生一連串的問題要求你輸入
Package name (<vendor>/<name>) [chuehnone/test]:
Description []:
Author:
Minimum Stability []:
License []:

Define your dependencies.

Would you like to define your dependencies (require) interactively [yes]?
Search for a package []:
Would you like to define your dev dependencies (require-dev) interactively [yes]?
Search for a package []:

{
    "name": "chuehnone/test",
    "require": {

    }
}

Do you confirm generation [yes]?

以上就是對composer的簡單介紹~想要了解更多可以上Composer官網的文件上查看!

留言

這個網誌中的熱門文章

Android 呼叫 zxing QR code scanner

今天弄個簡單的範例是關於執行QR code掃描的部分 這個方法是直接呼叫 Barcode scanner 的方法 首先在 build.gradle 的 dependencies 加上 compile 'com.google.zxing:android-integration:3.2.1' dependencies { ... compile 'com.google.zxing:android-integration:3.2.1' } 呼叫的方式則是在 Activity or Fragment 中加入執行的程式 IntentIntegrator scanner = new IntentIntegrator(mActivity); scanner. initiateScan (); 要如何得到掃描的值呢?只要 override onActivityResult 就可以囉! @Override protected void onActivityResult ( int requestCode, int resultCode, Intent data) { super . onActivityResult (requestCode, resultCode, data); IntentResult scanner = IntentIntegrator. parseActivityResult (requestCode, resultCode, data); if (scanner != null ) { String code = scanner. getContents (); // 掃描得到的字串 String format = scanner. getFormatName (); // 掃描的格式, 如 QR_CODE } } 附上參考的 java doc Class IntentIntegrator Class IntentResult

Java Semaphore 用途

老實說,這是第一次接觸到 Semaphore 之前也從來沒使用過,但當使用到他的時候才發現 在多執行緒時的控制,如果想要在某個情況下一次只執行一個執行緒(其實就是想做Lock動作) Semaphore 可以省下許多事情啊!以下列出簡單的範例code protected Semaphore isLock = new Semaphore( 1 ); // 限制同時只有1個在執行 ... new Thread ( new Runnable() { @Override public void run () { try { for ( int i = 0 ; i < 5 ; i++) { isLock. acquire (); // 會先印出open run1接著要等isLock.release(),才會再繼續印出 open run2 Log. e ( "Test" , "open run" + i); } } catch (Exception ex) { isLock. release (); } } }). start (); ... Button release = (Button)findViewById(R. id . release ); release. setOnClickListener ( new View. OnClickListener () { @Override public void onClick (View v) { isLock. release (); // 按下按鈕後才會繼續執行 } }); 參考資料: Semaphore

What is phpize

What is phpize According to the PHP official document : The phpize command is used to prepare the build environment for a PHP extension. If you need to build such an extension that from github or another code repositories, you can use  build tools to perform the build manually.