‘PHP’ カテゴリーのアーカイブ

Laravel 5.1 でログ出力、それから (ログメールドライバー動作不良対処、クエリ出力の調整)

おひさしぶりです。運用していたら結構変わったので、またこのネタです。

一応以前の記事へのリンクおいときます。

『Laravel 5.1 で実行ユーザー毎にログ出力』

『Laravel 5.1 でログ出力、その後 (出力レベル設定、クエリ出力)』

が、以前の記事の方法だとログメールドライバーが動作しないという問題が発生したので参考にしちゃだめ。

というわけで、以下の要件と不具合対処のために改修した内容を紹介します。

  • ログファイルの権限絡みのエラー回避、何処から起動された処理かわかりやすくする等の目的で実行ユーザー名ベースでログファイルを作成。
  • 動作環境(local, testing, production等のenvironment)でもログファイルを分ける。
  • バッチ処理やartisanのコマンド実行の場合はARTISAN_BINARYをログファイル名に挿入してWebアクセスとはログファイルを分ける。
  • デバッグフラグ(app.debug)を落とした状態ではINFO以上のログのみ出力。
  • .envでAPP_QUERY_LOGGINGにtrueを設定したら発行されたクエリをinfoログで専用ログファイルに出力(デバッグフラグでのコントロールを廃止し個別にコントロール可能とし、ファイルも分けた)
  • 以前の実装ではログメールドライバー(メール送信内容をログ出力するドライバ)が正常動作しなかったためLoggerインスタンスを差し替える方法から既存Loggerインスタンスのhandlerを差し替える方法に実装を変更。

(さらに…)

Facebooktwittergoogle_pluslinkedintumblrmail

Laravel 5.1 でログ出力、その後 (出力レベル設定、クエリ出力)

2017/2/1
不具合があったので『Laravel 5.1 でログ出力、それから (ログメールドライバー動作不良対処、クエリ出力の調整)』のほうを見て下さい

少し前に書いた『Laravel 5.1 で実行ユーザー毎にログ出力』という記事の続き的なものです。
環境も変わらず Laravel Framework version 5.1.35 (LTS) です。

前回のあらすじ
「ログ出力時に実行ユーザー名ベースでログファイルを作るようにすればログファイルの権限絡みのエラーを回避できるし何処から起動された処理かわかりやすくなって良くない?」と思ったボク。AppServiceProviderのboot()でloggerを差し替えつつも「ここでやっちゃっていいのかしら」という戸惑いを感じたりもして…


で、戸惑ってましたが実行準備の一貫としてAppServiceProviderでやってて問題なさそうかなと思ってます。ツッコミもこなかったし。

今回は実際に開発で使っていて

・デバッグフラグ(app.debug)を落とした状態ではINFO以上のログのみ出力
・デバッグフラグ(app.debug)を立てた状態では発行されたクエリをDEBUGログで出力

という機能追加をしたので、その紹介です。

(さらに…)

Facebooktwittergoogle_pluslinkedintumblrmail

Laravel 5.1 で実行ユーザー毎にログ出力

2017/2/1
不具合があったので『Laravel 5.1 でログ出力、それから (ログメールドライバー動作不良対処、クエリ出力の調整)』のほうを見て下さい

Laravel Framework version 5.1.35 (LTS) についての記事です。

muraveです。あんまりにもあんまりな記事(「PHP カンファレンス福岡 2016 で思ったこと」)を上げて反省しましたのでPHPお役立ち記事を書きたいと思います。

CLIコマンドを作ることができるフレームワーク、CakePHPなどもですが、ログ出力時にWebとCLIで実行したユーザーが異なり、権限がらみのエラーが発生したりしがちです。

そもそもログを調べる時、WebとCLIは別ファイルになってた方が良くないです?

(さらに…)

Facebooktwittergoogle_pluslinkedintumblrmail

PHP カンファレンス福岡 2016 で思ったこと

「PHP7未満無視で書きたいなぁ」

以上、開発環境はPHP7で作ったけど本番環境はPHP5.6になった現場からお送りいたしました。

まともな感想はshunの記事をお読み下さい。 すみませんでした。

Facebooktwittergoogle_pluslinkedintumblrmail

PHP カンファレンス福岡 2016 に参加しました

昨年に引き続き、今年も PHP カンファレンス福岡に参加しました。

昨年同様今年もとても価値のあるイベントだったので、レポートしておきます。

(さらに…)

Facebooktwittergoogle_pluslinkedintumblrmail

『Laravel リファレンス』発売、電子とキャンプ、そして紙

muraveです。最近はCakePHP(2系)を扱っていてLaravelはすっかりご無沙汰です。

2016/1/8 に株式会社インプレスより発売された『Laravel リファレンス[Ver.5.1 LTS 対応] Web職人好みの新世代PHPフレームワーク』(以降『Laravelリファレンス』)の見本誌を頂きました。ありがとうございます!

電子書籍のはなし

『Laravelリファレンス』、電子書籍版も同日に発売されました。すばらしい!

見本誌をいただけるというお話はあったのですが辛抱たまらず「田舎で最速で読むには電子書籍だべやばってん荒川」(嘘方言)とKindle版の予約をクリッククリックしておりました。

おかげで発売日の0時から読み始めることができましたが残念な点もかなり。

(さらに…)

Facebooktwittergoogle_pluslinkedintumblrmail

PHPの関数やメソッドで多値を返すときのパターン

muraveです。「多値を返せる #lua」というツブヤキをTwitterで見かけて、ふとPHPでよくやってるパターンを書こうかと。

配列で返してlistで受けるってだけですが。

function retManyValues()
{
    return ['m', 'a', 'n', 'y'];
}

list($m, $a, $n, $y) = retManyValues();

直書きしたのでバグってるかもしれませんがご容赦を(php -a して確認してみたら大丈夫っぽいですね)。

[]で配列を書けるようになったので以前より見た目がスッキリして嬉しい今日この頃です。

Facebooktwittergoogle_pluslinkedintumblrmail

PHP カンファレンス福岡に(ry

行ってきました。shun です。
ひと月以上前に参加登録が始まった当初からいつかやらなければと思っていたんですが結局時間を作れず、php 無知なまま出発しました。そう私、実は php 経験が無かったのです…!(続く)

(さらに…)

Facebooktwittergoogle_pluslinkedintumblrmail

PHPカンファレンス福岡2015 に参加しました

murave@プレモル1本目です。

2015年6月27日に開催された PHPカンファレンス福岡2015 に参加しました。

http://phpcon.fukuoka.jp

私が参加したのは以下の通り。

・開会式・スポンサー紹介
・基調講演「全てを結ぶ力」(郡山 昭仁 @koriym)
・あなたと秘伝のタレ mid 2015 (石田 絢一 @uzulla)
・10年超えるサービスのphpバージョンを4から最新にする話 (小田 知央 @linyows)
・CakePHP3ウォークスルー (長谷川 智希 @tomzoh)
・CodeIgniter update (宮川 貴子 @NEKOGET)
・Laravel5を使って開発してみた (野田 健夫)
・Phalcon PHPフレームワーク Sense of Use (近藤 和宏)
・CakePHPを業務で使ってみた(7年ほど) (小山 健一郎 @k1LoW)
・インフラエンジニアからレガシーPHPへのレイヤーアップ (山下 和彦)
・レイヤードアーキテクチャを意識したPHPアプリケーションの構築 (新原 雅司 @shin1x1)
・ライトニングトーク
・閉会式

(さらに…)

Facebooktwittergoogle_pluslinkedintumblrmail

baserCMS 3.0.7 でカテゴリ名、簡単に取れました

muraveです。

チョイ前の記事

baserCMSを3.0.2から3.0.7へ。ところでカテゴリ名ってまだ簡単に取れないんです?

で、タイトル通りの疑問を書いてましたら親切な匿名の方からコメントで情報を頂きました。

曰く、$category = $this->BcPage->getCategory(); echo h($category[‘title’]);

$categoryへの代入等はこちらで追加させてもらいましたが、確かにこれです!

ありがとうございます。

てなわけで、getCategory関数を使用してのカテゴリーのタイトル取得は以下のようになりました。

//カテゴリーのタイトルを取得
$category = $this->BcPage->getCategory();
$product_title = $category['title'];

真っ当感、ありますな。

ところで、このgetCategory関数のリファレンス、http://wiki.basercms.net/関数リファレンス/getCategoryにあったんですが、用例が変ですね。

BcPage->getCategory() ?>

でカテゴリー名が出力されるように読めるんですが、getCategory関数の返り値はarrayですのでそのままechoしちゃだめです。

Facebooktwittergoogle_pluslinkedintumblrmail