Composerは、PHPの依存性管理のためのツールです。プロジェクトが依存するライブラリを管理することができます。ライブラリの管理をプロジェクトごと行うことができるので、システム全体に影響することなく利用できます。
Composer のシステム要件は PHP 5.3.2以上ですが、PHP 5.3.4 以上を推奨しています。古いバージョンではエッジケースがあるかもしれないと注意事項があります。
1. インストール
Composer の公式ページのダウンロードのやり方を紹介します。
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" php -r "if (hash_file('SHA384', 'composer-setup.php') === 'e115a8dc7871f15d853148a7fbac7da27d6c0030b848d9b3dc09e2a0388afed865e6a3d6b3c0fad45c48e2b5fc1196ae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" php composer-setup.php --install-dir=/usr/local/bin --filename=composer php -r "unlink('composer-setup.php');"
インストールを確認してみます。
# which composer /usr/local/bin/composer
これで composer がコマンドラインから使えるようになりました。
2. パッケージリスト
composer で利用できるパッケージは何があるのしょうか?
https://packagist.org/explore/ で確認できます。
私は ocr 関連のライブラリが必要なので “ocr” で検索しみるとたくさんできてきました。
今回は、”thiagoalessio/tesseract_ocr” を利用してみます。
3. パッケージのインストール
パッケージのインストールには、”composer.json” というファイルに依存関係を記述してインストールフォルダに配置する必要があります。(https://packagist.org/ 参照)
今回利用する “thiagoalessio/tesseract_ocr” に composer.json の依存関係の記述があります。バージョンを “1.0.0-RC” から “0.2.1” に変更して使用します。
(追記:実は後でわかったことですが、1.0.0-RC のtesseract_ocr をインストールすると PHP 5.3.3 では文法エラーになる構文が使われています。)
# vi /project/lib/composer.json --- 以下の内容を記述して保存 --- { "require": { "thiagoalessio/tesseract_ocr": "0.2.1" } }
そして、次に以下のコマンドを実行します。
# composer install Your version of PHP, 5.3.3, is affected by CVE-2013-6420 and cannot safely perform certificate validation, we strongly suggest you upgrade. You are running composer with xdebug enabled. This has a major impact on runtime performance. See https://getcomposer.org/xdebug Loading composer repositories with package information Updating dependencies (including require-dev) - Installing thiagoalessio/tesseract_ocr (0.2.1) Downloading: 100% Writing lock file Generating autoload files
「使用しているPHPのバージョンが 5.3.3 なのでCVE-2013-6420の影響があるので安全に証明書の確認ができないためアップグレードすることを強くお勧めします。」と注意されました。さっそくエッジケースに出くわしましたね。
取り急ぎ、影響ないので無視します。
(追記:xdebug を有効にして composer を実行しています。。。という注意は /etc/php.d/xdebug.ini の zend_extension=/usr/lib64/php/modules/xdebug.so の行頭に ; セミコロンを付けてコメントアウトすると xdebug が無効になります。)
インストールフォルダをみると以下のファイルとフォルダが出来ています。
composer.json composer.lock vendor - autoload.php
これがあればインストールは成功です。
5. PHPからパッケージの利用
インストールした “tesseract_ocr” は TesseractOCR のラッパーライブラリなので TesseractOCR をインストールします。
# yum install tesseract
https://packagist.org/packages/thiagoalessio/tesseract_ocr を参考にして画像をOCRしてみます。
画像はこちらを使用させていただきます。
# vi test.php --- 以下の内容を記述して保存 --- <?php include "lib/vendor/autoload.php"; $tocr = new TesseractOCR("./text.jpeg"); $tocr-<setLanguage("eng"); $text = $tocr->recognize(); cho "Output ==>".PHP_EOL; echo $text; ?>
さっそく実行してみます。
# php test.php Tesseract Open Source OCR Engine v3.04.00 with Leptonica Output ==> The quick brown fox jumps over the lazy dog,
しっかり認識できています!
以上です。