Composer自体のインストールとmonolog及びTwigをComposer経由でインストールする方法
2024/02/20
「Composerで○○をインストール」というのをよく見かけるがComposerすら何なのか分かっていなかった。今後使うかどうかは置いておいてComposer自体のインストール方法とmonolog及びTwigをComposer経由インストールする方法のメモ。
Composerのインストール
ドキュメントルート(/var/www/htmlで想定)とかで以下コマンドで導入可能。
wget https://getcomposer.org/download/1.0.0-alpha11/composer.phar
monolog
インストール方法
同ディレクトリで以下コマンドでインストールする。
php composer.phar require monolog/monolog
/var/www/html/vendor/monologディレクトリにインストールされる。
使用方法
以下のような形で使用する。
<?php
ini_set( 'display_errors', 1 );
require('./vendor/autoload.php');
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
use Monolog\Formatter\LineFormatter;
$logging_path = 'log/error.log';
$log = new Logger('test');
$output = "[%datetime%] %level_name% %message% %file% %line%\n";
$formatter = new LineFormatter($output);
$stream = new StreamHandler($logging_path, Logger::DEBUG);
$stream->setFormatter($formatter);
$log->pushHandler($stream);
$log->pushProcessor(function ($record) {
$record['file'] = $record['context']['file'];
$record['line'] = $record['context']['line'];
return $record;
});
function debug($message, $depth=''){
global $log;
$backtrace = debug_backtrace();
$key = isset($backtrace[$depth]) ? $depth : 0;
$file = $backtrace[$key]['file'];
$line = $backtrace[$key]['line'];
$context = array('file' => $file, 'line' => $line);
$log->addInfo($message, $context);
}
debug('debug message!!');
尚、ファイルのパーミッションやユーザーは適宜変更する(rootでインストールしたらvendor/autoload.phpが読み込めなかった)。
Twig
インストール方法
同ディレクトリで以下コマンドでインストールする。
php composer.phar require twig/twig:1.*
*のワイルドカードは1.*系で最新のものをインストールしてくれるらしい。/var/www/html/vendor/twigディレクトリにインストールされる。
使用方法
以下のような形で使用する。
<?php
require_once './vendor/autoload.php';
$loader = new Twig_Loader_String();
$twig = new Twig_Environment($loader);
echo $twig->render('Hello {{ name }}!', array('name' => 'hoge'));
こちらもmonologと同様、ファイルのパーミッションとユーザーに注意する。
composerとは
PHPのパッケージ管理システムらしい。yumとかだと依存関係によりインストールできないことがあるが、そういった問題が解決できるらしい。まだ試したばかりで実感できないが本当に解決できるのであれば非常にありがたい。
参考サイト
関連記事
-
-
htmlspecialcharsを通してMySQLに格納したものを元に戻して出力
MySQLにHTMLタグを入れたくない場合にhtmlspecialcharsを使 ...
-
-
PHPでサイトURLからtitleとRSS用URLを取得
サイトのURLからRSS用URLとサイトタイトルを自動で取得したかった。その方法 ...
-
-
PHPでGoogle翻訳を手軽に扱えるライブラリ「google-translate-php」の利用方法
サイト内で一部テキストのGoogle翻訳を行いたい。ただ、Google Clou ...
-
-
PHPで縦横どちらかが指定の長さを超えた場合、比率を保ったままリサイズ
PHPで縦横どちらかが指定の長さを超えた場合、 比率を保ったままリサイズしたかっ ...
-
-
UTF-16にエンコードされている文字列をUTF-8へデコード
エンコードされている文字列であまり見かけない感じのものがあった。UTF-8やSh ...