php

シンプルな PHP7マイクロフレームワーク Karen

php

この記事は PHP7 で PSR-7 と Middleware を使うマイクロフレームワークを書いてみた の続編です。コードは https://github.com/brtriver/karen 前回までの記事の流れをざっくりと書くと Slim3 が PSR-7 と Middleware を採用していたので、PHP7の無名クラス…

PHP7 で PSR-7 と Middleware を使うマイクロフレームワークを書いてみた

php

コードはこちら。https://github.com/brtriver/karen[追記] この記事に書いてあるコードからさらに改良加えてApplicationレイヤーを作りました(v0.2) 詳しくはこっちの記事を参照をば http://d.hatena.ne.jp/brtRiver/20160106/karen_frameworkこの記事の時…

無名クラス(PHP7)をマイクロフレームワークで使ってみた

php

PHP7からは無名クラスが使えるようになりました。 どういった場合に無名関数を使う機会があるかなぁと考えていると、ふとマイクロフレームワークの無名関数部分の代わりに使うと良いんじゃないかと思いやってみましたというのがこの記事。[追記] 実際にSlim3…

Loggerクラスをテストのたびにmockを用意しなくて済むための工夫

この記事は、Symfonyアドベントカレンダー2015の19日目の記事です。でも今日は20日ですね。(ごめんなさい。。忘れてました。。18日はnaoyesさんのSymfonyプロジェクトのテストにCodeceptionを使ってみるでした。今日は11/24 に開催された PHP BLT #1 でLTし…

phpcon 2015 で 「営業・運用を支える "気づける" 管理画面」で話します

php

久しぶりに phpcon にスピーカーとして参加します。 http://phpcon.php.gr.jp/2015/ 場所はいつもの大田区産業プラザPiOですね。ちなみに前回は2012年で 「フラットなPHPからフレームワークへ」でお話させていただきました http://www.slideshare.net/brtriv…

json_encode したらどーなるかクイズ

php

突然ですが問題です。 1 [1] => 2 [2] => 3 [3] => 4 )簡単ですね。じゃあ、次は? 1 [1] => 2 [2] => 3 [5] => 4 )index番号に違いがあります。valueは同じです。これらを踏まえて、…

CRUDっぽいルーティングとアクションを追加できるTraitコントローラーを作ってみた

管理画面で欲しいCRUD処理 いわゆる管理画面作ってると CRUDができるAdmin Gegeneratorっぽいものが欲しくなりますよね。 色々アプローチはあると思います。 テンプレートからひな形のコードを生成してしまう Generetor 方式 必要があれば直接編集したり、直…

monologでPHPのFatalエラーをログに残す

この記事はSymfony Advent Calendar 2014の9日目の記事です。昨日は おかぽんさんの SymfonyのDIを利用してMail送信クラスをインテグレーションテストする:コード編 でした Symfony のエラーハンドリングはとても優秀 (ただし2.4以降) Symfony は monolog …

Hack で JSON返すシンプルなマイクロWebアプリケーションフレームワーク書いてみた その(2)

この記事は前回の記事の続きです。Hakuのリポジトリはこちら 前回とりあえず書いてみたHackで書いたコードですが、 strictモードで hh_client check を通したい strictモードで書きたいが Aura.Router が PHP なので Strictモードの指定ができない 高負荷で…

Hack で JSON返すシンプルなマイクロWebアプリケーションフレームワーク書いてみた

[追記] PHPカンファレンスのUstのリンク追加 [追加] Hackの面白そうなところを追記 [追記] RouterをHackで書きなおした続編はこちら http://d.hatena.ne.jp/brtRiver/20141019/1413738340 久しぶりすぎるブログ更新ですね。。 Hack_(プログラミング言語) Hac…

"PHP Fatal error: Allowed memory size of xxx" で落ちる前にできること

php

PHP Advent Calendar 2013 - 7日目昨日は@hidenorigotoさんのBeyond MVCでした。今日は PHPあるある的な問題に対する対策について少しばかり書きたいと思います。※ 歯ブラシを持たせてみた *1 メモリ不足でよくやる対応 PHPで大量のデータを扱ったりすると、…

簡単にPHPをmakeしてみた #vgadvent2013

php

初めての方こんにちは!!いつもお世話になっている方こんにちは!! VOYAGE GROUP エンジニアブログ Advent Calendar 2013 の3日目担当の @brtriver です。Zucks で広告配信システムのアレやコレをやってるエンジニアです。冬と言えば鍋。そうPHPですね! …

Phalconでマイクロフレームワーク

php

久しぶりにPHPのエクステンションで書かれた超高速フレームワークPhalconを見たら 公式ページが見やすくなってた バージョンが1.0.0になってた annotationリーダーのライブラリができてた(そしてPhlconで使える) Microというクラスがあり、マイクロフレーム…

3分でできる俺PHPテスト環境

※この記事はVOYAGE GROUP エンジニアブログ : Advent Calendar 2012の15日目の記事として書いてます。 3種の神器 PHPUnit, Stagehand_TestRunner, Phake 初めての方はじめまして。いつもの方こんにちは。 VOYAGE GROUP の adingo という会社で 広告配信に関…

配列のキーの存在チェック(isset)をしながらhtmlspecialcharsするのをちょっと読みやすくする

php

1枚のPHPでGETパラメータの値をそのまま出力したりする場合、何も考えずに書くとこんな感じになります。 さすがに、毎回これを埋め込むのは嫌ですよね。 なぜなら、同じkey名を2回間違わずに書かなくてはなりませんし、なによりも長い。 なので、次の考える…

フラットなPHPからSlimへ

フラットなPHPからSilexへの姉妹版記事です。追記 configにモデルを突っ込むコードからcontainerプロパティを作り、配列としてクロージャを登録する方式に変更 $app全体を持ち回す必要がないところは必要な情報のみ渡すように修正 追記 2014/08/13 slimがバ…

フラットなPHPからSilexへ

追記 DB接続時にcharset=utf8を指定 bindValueで暗黙の型変換されないように変更 Pimpleをサービスロケータとして使う場合の注意点を追加 テンプレートとしてフラットなPHPからTwigで書いた場合を追加 前提 スクリプト、ファイル、DBの文字コードはすべてUTF…

これからのSilexのインストール方法

七夕ですね。BEAR.Sundayが楽しいですね。詳細についてはまだ発表されていませんが7/19(木)についに BEAR.Sunday Meetup #0 が開催されるようですよ。今日はSilexのインストール方法について色々変更があったのでまとめておきます。 silex.pharは配布しない…

Symfony勉強会 #6 が無事終了!!

無事開催できました。 2012/6/30に VOYAGE GROUP にて Symfony勉強会#6 が開催されました。 レポートはユーザー会にもアップされる予定です。アップされました。 http://www.symfony.gr.jp/blog/20120630-symfony2-workshop6-report それに、参加者のみなさ…

OrePHPはこれでさらに高速になった(OrePhalcon)

前回、OrePHPはシンプルで速いクールなフレームワーク - ぷぎがぽぎという内容の記事を書きましたが、これぐらいの速度で満足してはいけないということで更に高速化を考えました。 Cのエクステンションで書かれた超高速PHPフレームワーク Phalcon Phalconと…

composerでPHPのプロジェクトを簡単に始める

composerとはなんぞや? composerはPHPのパッケージの依存関係やバージョン管理を行う仕組みで多くのライブラリがPackagistを通して利用可能です。詳しいcomposerの記事は以下を参照していただくとして... PHPの外部ライブラリの管理にComposerを使う | Ryuz…

OrePHPはシンプルで速いクールなフレームワーク

[追記1] 2012-06-10: ベンチマークを追加 [追記2] ブクマのコメントに回答 [追記3] ベンチマークをちょっと充実させた。Pinocoはえー [追記4] コントローラーの仕組みを変更 & debugモード追加 [追記5] PHP5.4.4で再ベンチ"ぼくがかんがえたさいきょうのふれ…

プロとしてWebアプリケーションを開発するということ

php

クロコスのエンジニアでもあり、日本Symfonyユーザー会のメンバーでもある小川さん([twitter:@fivestr])が執筆した最新作「効率的なWebアプリケーションの作り方 -PHPによるモダン開発入門-」を献本いただいたので紹介したいと思います。 最新の技術を追って…

Silexを通して伝えたかったこと ~ PHPカンファレンス関西2012 ~

お詫び: 本当は月曜日にでもレポートを書こうと思っていたのですが、諸事情により*1このタイミングになりました。 カンファレンス全体を通して感じたこと 5/12に大阪で開催されたPHPカンファレンス関西に参加してきましたのでまずはざっくりと印象を箇条書き…

4/25(水) 20:30〜 Symfonyしゃべりば - 春ですね - をust放送

春ですねー!開発してますかー?唐突ですが、明日夜に久しぶりにSymfonyしゃべりばUst放送をやります。 FacebookSymfonyしゃべりば UstreamSymfonyしゃべりばとは、Symfonyのことも話ながらお酒のみながらゆるーい会話をただ流すだけのUst番組です。過去5回…

SilexのExtensionからProvider への進化

かなり放置してしまっていたPHPTALのSilexエクステンションを更新しました。 Extensionという名前からProviderという名前に変わったのでその対応だけです。GitHub - brtriver/PHPTALServiceProvider: PHPTAL Extension for Silexそして、SilexがExtensionか…

TwigをPhar化

php

Twigを使うことが多いですよね。そしてもっとデプロイを楽にしたいですよね。 PHPにはpharという(javaでいうjarみたいな)機能があってファイルをまとめることができます。 via: PHP: はじめに - Manualというわけで、Twigをphar化すれば良いというわけで以下…

Symfony のこれまで 〜 Symfony Advent Calender 2011 JP - 初日 -

しわっす。今日から Symfony Advent Calender 2011 ということで、symfony/Symfony に関するブログを24日間お届けします。初日は 日本Symfonyユーザー会の前田@brtriver が担当します。 Symfonyとは 初日ということで、Symfonyそのものについて簡単にお話し…

Silexの紹介記事を寄稿しました&さらに最新情報

Silex のことが書かれた最初の記事かも? もうみなさんご存知ですよね。今月のWEB+DB PRESS Vol.65 に"PHPフレームワーク実践活用〜Symfony2,CakePHP,Silex〜"という特集があります。今回、声を掛けていただき 6ページにまとめた Silex の紹介記事を寄稿し…

Symfony2のパフォーマンスをアップする簡単な方法

[追記とお詫び] APC有効の場合の値が正しく測定できていませんでした。 当初は20倍という結果になってましたが、再測定の結果4倍になりました。 すんごい悪くなったような気がしますが、4倍"も"速くなったと前向きに捉えてます。 なにわともあれ、正しくない…