Alan Moment
  • Introduction
  • 智慧家庭
    • Fibaro 系統整合便宜的 IP Cam
  • Life
    • 用AWS Glacier做最後的冷資料備份
    • 如何在macOS修改影音檔日期
  • 3D Printer
    • Atom2.5EX 之血淚組裝
    • 列印經驗紀錄
      • SpoolHolder
    • 製圖經驗
      • Turntable
      • 重製Atom3散熱風扇
    • 線材經驗
      • PETG
        • 首測
  • Kubernetes
    • 使用Kops建立Kubernetes
    • 使用HelmV2
    • Kubernetes的技術問題排解技巧
  • PHP
    • 管理PHP Library的利器Composer
    • PHP安裝JSON
    • Phalcon首發
    • Gearman Job Worker for PHP
    • Laravel 首發 !!!
    • Data Encrypt & Decrypt
  • Python
    • Django + Python 開發環境建置
  • Android
    • Android zipcode library of maven
    • Android use foreign object of OrmLite
    • ProgressBar while loading ListView of Android
    • AsyncTask download image by the Android
    • Use Thread control Android UI
    • Android Universal Image Loader
  • Ruby on Rails
    • Install rmagick on the Windows of Ruby on Rails
    • Ruby on Rails deploy on Heroku
    • Ruby on Rails 小問題
  • React
    • Ditched AngularJS for React
  • Tessel
    • 很潮的 Tessel
    • Connect to Slack on Tessel
    • Baby Help on Tessel
  • Node.js
    • CentOS 安装 Node.js 0.8.5
  • OOAD
    • Injection Principle Design Pattern
  • Linux
    • SSH免密碼登入遠端電腦
    • Apache與Tomcat的結合
    • The bash auto build
  • Hadoop
    • CentOS 5.5 + Hadoop 0.20
    • CentOS 5.5 + Hbase 0.94.8
    • Hadoop + Hbase 叢集環境
    • Hadoop 溝通橋梁之 Thrift 0.7
    • 使用MapReduce之替代方案Hive
    • 使用Sqoop將MySQL資料匯入Hbase
  • Database
    • 吃足苦頭的Mssql
  • IDE
    • Netbeans console中文亂碼解決方法
    • 用NetBeans開發Ruby On Rails
  • Agile
    • 淺談我的Agile
  • 協作工具
    • 建置專屬自己的Github之Gitlab
    • Gitlab 4.1 upgrade to Gitlab 6.0超偷懶方法
    • Install Phabricator and run on the Gitlab
    • Phabricator 基本應用
    • Phabricator review code應用
    • Redmine之基本建置與Scrum應用
    • Omnibus Gitlab 7 基礎操作
    • Git Push Notify to Slack on Gitlab
    • phabricator-extensions-Sprint 無法抓到正確的 Story Points
  • 其他
    • 慶祝Octopress開張
    • 走在時尚的尖端! Ghost
    • 大搬家
    • 網頁教學初體驗
    • 網路攻擊很猖狂
Powered by GitBook
On this page
  • 安裝 PHP Composer
  • 在 PHP 專案建立 Composer
  • 使用 Github 上的 Repository

Was this helpful?

  1. PHP

管理PHP Library的利器Composer

PreviousPHPNextPHP安裝JSON

Last updated 3 years ago

Was this helpful?

在之前試玩的時候就覺得有一整個就是超好用的吶!!所以前陣子公司導入 Gitlab 之後順勢要我研究一下 PHP 的,想不到還有支援 Github。所以做個紀錄。

安裝 PHP Composer

安裝在各自專案時

mkdir /var/www/html/example
sudo curl -s https://getcomposer.org/installer | sudo php
install composer

我安裝時有出現警告訊息是因為我的 PHP 版本是 5.3.3 他建議我升級到 5.3.4 或更高,否則可能導致 Composer 不穩定

我自己是安裝在/usr/local/bin

cd /usr/local/bin
sudo curl -s https://getcomposer.org/installer | sudo php

可建立指向

ln -s /usr/local/bin/composer.phar /usr/bin/composer

這樣不管在哪個專案只要建立 composer.json 都可以使用了。

在 PHP 專案建立 Composer

建立 composer.json

cd /var/www/html/example

composer.json

{
  "require": {
    "monolog/monolog": "1.2.*"
  }
}

建立後執行

composer install

專案目錄底下就會產生 vendor 資料夾,裏頭就是在 composer.json 有設定要引入的 library。

使用 Github 上的 Repository

把 library 放到 github 上管理,然後再用 composer 引入各自的專案,這豈不是太方便了!!

vim composer.json
{
  "name": "bom-solution",
  "description": "bom solution",
  "homepage": "https://github.com/alanmoment/bom-solution",
  "repositories": [
    {
      "type": "package",
      "package": {
        "name": "alanmoment/bom-solution",
        "version": "v0.1",
        "source": {
          "url": "git@github.com:alanmoment/bom-solution.git",
          "type": "git",
          "reference": "v0.1"
        }
      }
    }
  ],
  "require": {
    "php": ">=5.3.3",
    "alanmoment/bom-solution": "v0.1"
  }
}

建立 github 的 composer 之前必須先在你的 repository 建立 tag alanmoment 是我的 github 的帳號 bom-solution 是我的 repository v0.1 是我 tag 的版號

存檔後執行

composer install

會發生以下錯誤

Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Nothing to install or update
Generating autoload files

這是因為執行過 composer install 之後目錄底下也會產生一隻 composer.lock 檔案,要再次執行前先把他刪掉,就可以正常執行囉 。

完成囉!!

Jul 4th, 2013 12:36:00am

Composer 官網也有提供線上的可以使用。讚!!

composer install
Library
Ruby On Rails
Gem
Composer