Composerが使えない環境でComposer用のライブラリを使う方法
一昔前は、様々なライブラリが各々の管理方法で、それぞれのライブラリを zip ファイルにして配布していました。
ですが最近ではPHPの開発環境にてComposerを使うことは、もはや当たり前になってきています。
しかし、すべてのシステムにおいてComposerが導入できるとは限りません。
特に請負などで環境が非常に限られてしまっている場合などでは、コマンドが実行できない環境もあり、その場合はComposerを実行することができません。
今回はそんな「ちょっと限られた環境」でComposer用のライブラリを使う方法をご紹介します。
目次
前提条件
Composer用のライブラリを使う上で、最低条件があります。
それは 「Composerの必須条件以上のPHPが稼働できる環境があること」 ということです。
この条件については下記で説明しますが、これが満たせない場合は原則無理だと思ってください。
(そもそも、PHP5系の最終である 5.6 のセキュリティサポートが 2018/12/31 に終了している時点で5系を使っていること自体が問題なので、「Composerが使えない」以前にPHPバージョンアップを先に考慮すべきです)
また、とても大事なことですが 「本番環境ではないので、モジュールやバージョンなどの違いによっては実行できないことがある」 ということもご理解の上で実行してください。
確実に動くことを保証するものではありません。
さらに、実際に導入する環境はComposerの必須条件のPHPバージョン以上であることも最低条件となります。
どうやってComposerが使えない環境でComposer用のライブラリを使うのか
今回の本題です。
Composerを使わないでComposer用ライブラリを使うためには 「Composer用ライブラリを外部環境で取得し、ライブラリ一式を対象のプロジェクトに入れる」 です。
具体的にはこんな感じです。
- 自分のPCやコマンドが使える環境にComposerをインストールし、実行できる環境を用意
- Composerを使って目的のライブラリを取得
- 取得した一式を開発環境に入れる
どういうことか、順を追って解説していきます。
自分のPCやコマンドが使える環境にComposerをインストールし、実行できる環境を用意
これは読んで字のごとくですね。
Linux以外にMacやWindowsなどのマルチプラットフォームでComposerは動きます。
各々の環境に応じて入れましょう。
Composerのダウンロード・インストールに関しては こちら の公式からどうぞ。
Composerを使って目的のライブラリを取得
Composerのインストールが完了したら、次はライブラリを取得しましょう。
require コマンドで実行するのではなく、composer.json ファイルを作成してインストールしていきましょう。
composer.jsonの例
1 2 3 4 5 6 7 8 9 10 |
{ "config": { "platform": { "php": "5.6" } }, "require": { "phpoffice/phpspreadsheet": "^1.7" } } |
ココでのポイントは 本番環境と同じPHPのバージョンを記載しておく ということです。
上記の例では config の中で PHP 5.6 を指定しています。
これにより Composer は PHP 5.6 として、各ライブラリの依存環境を解決していきます。
また、PHPのモジュールなども指定できるみたいですので、指定を増やすことでより厳密な依存環境チェックを行ってくれます。
取得した一式を開発環境に入れる
Composer によるライブラリの取得が終わったら、下記のような感じになっていると思います。
1 2 3 4 5 6 7 |
composer.json composer.lock vendor L autoload.php L Composerによって取得されたライブラリなど... |
この一式を開発・本番環境に入れましょう。
その後 vendor/autoload.php を require_once などで読み込むことで、ライブラリを使うことができます。
使い方の例は下記のような感じで、通常の Composer ライブラリと同じように使えます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<?php require_once 'vendor/autoload.php'; use \PhpOffice\PhpSpreadsheet\Writer\Xlsx; use \PhpOffice\PhpSpreadsheet\Spreadsheet; $spreadSheet = new Spreadsheet(); $sheet = $spreadSheet->createSheet(0); $sheet->setCellValue('A1', '123'); $sheet->setCellValue('B2', 'abc'); $xlsx = new Xlsx($spreadSheet); $xlsx->save('test.xlsx'); |
この方法なら、制限環境での PhpSpreadsheet なども使用することができます。
PhpSpreadsheet に関する使い方は こちら をご参照ください。
さいごに
開発環境によってはずいぶんと制限を受ける環境はまだ残っていると思います。
そういう環境でもライブラリを使えれば便利ですね。
ではでは。
- おすすめ記事
-
-
のえる2019.04.23
-
1つのCakePHP3プロジェクトで管理画面も用意する方法
のえる2019.04.16
-
POPULAR
のえる
Full-stack Developer