PHP Lesson 2

Composer 套件管理

What? Why?

  • Composer是PHP獨立套件管理程式 
  • 不要在閉門造車或是自已做輪子
  • 寫程式就像拼圖或積木一樣
  • 這是一個快速開發的時代

安裝&基本指令

// 區域性安裝
1. curl -sS https://getcomposer.org/installer | php

// 全域性安全

1. curl -sS https://getcomposer.org/installer | php
2. mv composer.phar /usr/local/bin/composer

// 第一次安裝套件
composer install

// 更新套件
composer update

// 安裝單一套件
composer require

// 移除套件
composer remove

// 重新讀取
composer dump-autoload

關於composer.json

{
    "name": "api.karaokecloud.com",  // 專案名稱(不重要)
    "description": "KaraokeCloud API",  // 專案描述(不重要)
    "keywords": [ // 關鍵字(不重要)
        "framework",
        "laravel"
    ],
    "license": "MIT",  // 授權(不重要)
    "require": { // 載入的套件(重要)
        "laravel/framework": "4.2.*",
        "jenssegers/mongodb": "*",
        "philo/laravel-twitter": "dev-master",
        "guzzlehttp/guzzle": "4.*",
    },
    "minimum-stability": "dev", //最小可接受的版本
    "autoload": { //自動讀取
        "classmap": [
            "app/commands",
            "app/controllers",
            "app/models",
            "app/database/migrations",
            "app/database/seeds",
            "app/tests/TestCase.php",
            "app/libraries"
        ]
    }
}

在程式碼中使用

require 'vendor/autoload.php';

use Carbon\Carbon;
// 例:使用時間套件函式

$exDate = Carbon::createFromFormat("Y-m-d H:i:s", $date);

echo $exDate->minute,
echo $exDate->hour,
echo $exDate->day,
echo $exDate->month,

如何找到我想要用的套件?

  • https://packagist.org/ (免費)
  • https://cartalyst.com/ (付費)
  • Google 搜尋

關於套件管理的幾件事

  • 套件也是人寫的,代表可能也有錯
  • 套件也是人寫的,代表他會懶的更新
  • 套件也是人寫的,代表可能會有漏洞
  • 套件也是人寫的,代表你也可以看的懂
  • 套件也是人寫的,代表你也可以寫

    使用套件都有風險,請謹慎使用並詳細參考說明

PEAR

  • 全域性的PHP套件管理
  • http://pear.php.net/
Made with Slides.com