2015年10月3日に開催されたPHPカンファレンス2015で「フリマアプリ「メルカリ」の急成長を支えるエンジニアリング」というタイトルで発表してきました。 フリマアプリ「メルカリ」の急成長を支えるエンジニアリング speakerdeck.com 内容的には昨年の9月に自分が入社してからの1年の間に行ってきたメルカリの様々なシステムの基盤作りに関する取り組みを中心にまとめたものになっています。 bokko.hatenablog.com これらの取り組みはもちろんすべて自分一人でやったわけではなく、同僚のエンジニア達と共同で取り組んで達成してきた成果でもあります。例えば、発表資料の中で言及しているデプロイの仕組みの構築にはインフラチームのメンバー全員(4人)の手が入っています。 デプロイの自動化およびゼロダウンタイム化への道 メルカリで本番にアプリーケーションをデプロイするにはリリース時刻に
現在ではロガーのインターフェイスに関する規約を定める PSR-3、PSR-0にとってかわる PSR-4、HTTP メッセージの取り扱いを定める PSR-7が追加されています。また、PSR-4の追加に伴って PSR-0は非推奨となりました。 PSR-3~7の概要については次の記事が参考になります。 PSR-3 Logger Interfaceの話: Architect Note PSR-4 Improved Autoloadingについて調べてみたメモ | kanonjiのブログ PHP - Psr7を使ってみた(というか不変オブジェクトを初めて使った感想) - Qiita さて、冒頭にも書いたとおり、ある長く続く開発プロジェクトで PSR-2をコーディング規約として採用することになりました。「採用する」というのは、これまで口約束や慣習で成り立ってきたものを明文化されたものに置き換えるという
FastCGI対応機能がH2Oにマージされたことを受けて、uzullaさんが「H2OでPHP(がちょっとだけ動くまで)」という記事を書いてくださっています。 ありがたやありがたや。 その中で、 http://hoge/entry/1 みたいなのをphpにマップする方法はまだよくわかってません。その内しらべます github.comを読む限り FastCGI (or PHP) applications should be as easily configurable as it is for the Apache HTTP serverということで、やったぜ!ってなるんですけど、nginxはもとより、Apacheにおいても現状ルーターをつかっているようなアプリだとhtaccessをいちいちかかないといけないので、Apacheみたいなスタイルが楽なのか?というとちょっと疑問があります。 (たと
どうも、筋トレにハマっているたきゃはしです。 本日はPHPにおける日付時刻のライブラリについて書いていきたいと思います。 突然ですが、日付や時刻が絡む処理って意外とやっかいだと思いませんか?おそらく皆さんもいくつか思い当たるフシがあるかと思いますが、そんなやっかい事も Carbon(カーボン)を使えば解消できるかもしれません! Carbon - A simple PHP API extension for DateTime. Carbon とはPHPのDateTimeクラスを継承して拡張された日時操作ライブラリです。 「Carbonってどうなの?流行ってるの?」という方向けに予め補足致します。 Carbonはすでに人気のフレームワークに統合されていたり、GitHubで☆3000に迫る評価もありますのでDateTimeライブラリとしてデファクトになるんじゃないかと予想できます。 ではインスト
2012年頃に、PHPのJSONエクステンションのソースコード中に次のようなライセンス文言が含まれていると話題になりました。 The Software shall be used for Good, not Evil. これはJSONライセンスと呼ばれるライセンスの一文です。「このソフトウェアを良いことに使うのはいいけど、悪いことには使っちゃダメ」といったところでしょうか。 これはフリーソフトウェアの定義に反しており*1、各種LinuxディストリビューションでJSONエクステンションを配布できないことになるため、ちょっとした騒動になったというわけです。 本稿ではこのJSONライセンスへの対応が現在どうなっているかを紹介します。 各種Linuxディストリビューションの対応 PHPのJSONエクステンションはjson_encode()やjson_decode()などの重要な関数を提供するエクス
Sonata Project Documentation Sonata is a ecosystem of many bundles, we split them into the following categories: persistence, foundation, feature and libraries. First you should start with the SonataAdminBundle documentation. Admin Bundle The main bundle of Sonata, it includes the main features of a CMS generator. SonataAdminBundle Persistence Bundles Official persistence bundles, depends whete
CodeIgniter 3のライセンスがMITライセンスに変更され、いわゆるライセンス問題は完全に解消 CodeIgniter 3.0がMITライセンスでリリースされることが決まりました! GitHubのリポジトリは、すでにMITライセンスに変更されています。 https://github.com/bcit-ci/CodeIgniter/blob/develop/license.txt CodeIgniter 3.0はOSL 3.0というあまり聞いたことのないオープンソースライセンスでリリースされることが開発元のEllisLabにより決められていました。 OSL 3.0へのライセンス変更の詳しい経緯に興味がある方は、 CodeIgniter のライセンス変更問題のタイムライン を参照して下さい。 OSL 3.0は、GPLと互換性がないこと、ライセンスがマイナーで解説などの情報が少ないなどラ
Scrutinizerが凄い!! ScrutinizerというサービスがPHPの静的解析出来て凄いというスライドを読んで試しに使ってみたら思いの外すごかった。 公式サイトURL https://scrutinizer-ci.com/ スライドの記事 http://www.slideshare.net/hinakano/scrutinizer-ciphp オープンソースのリポジトリ(publicリポジトリ?)なら無料で利用出来るようです。 静的解析が優秀! Scrutinizerでは初期設定の段階で、php-sim、pdepend、php-analyzerツールが有効になっています。 これらツールの他に設定で、 PHP Code Sniffer PHP Change Tracking Analyzer PHP CS Fixer PHP Mess Detector Security Advis
昨日のエントリにて、PHPのbasename関数はマルチバイト文字を扱えることを説明しましたが、このブログの読者であれば、きっとbasename関数は不正な文字エンコーディングについてどの程度チェックするのかという疑問が生じたことでしょう(きっぱり)。実はbasename自体は、不正な文字エンコーディングをチェックせず、垂れ流してしまいます。その理由をbasenameのソースコードで確認してみましょう。以下は、basename関数の実装の一部です。 // ext/standard/string.c // php_basenmae() while (cnt > 0) { inc_len = (*c == '\0' ? 1: php_mblen(c, cnt)); switch (inc_len) { case -2: case -1: inc_len = 1; php_ignore_valu
そろそろrsyncでデプロイするのは卒業したいな、ということでRocketeerというデプロイツールを導入してみました。 RocketeerはPHP製のCapistrano風デプロイツールです。PHP製なだけあってはじめからComposerやPHPUnitをサポートしてるし、当然だけど設定ファイルや新しいタスクもPHPで記述できるしでとても使いやすいです。 Rocketeer自体はフレームワークに依存しないデプロイツールではありますが、Laravelのパッケージとしてインストールすると、artisanからデプロイできたり、データベースのマイグレーションやシーディングなんかもできるようになるので、Laravelアプリケーションのデプロイには特に便利に使えます。 ただ、新興のツールであるからか、日本語での具体的な導入手順について解説している情報があまりありません。素晴らしいツールでありながら導
vagrant-layout というのを作りました。 koseki/vagrant-layout at plugin · GitHub この記事で書いていた環境を生成する Vagrant プラグイン&設定サンプル集です。 Vagrant を使って Mac からダブルクリックで操作できる仮想環境を作る - こせきの技術日記 インストール $ vagrant plugin install vagrant-layout でプラグインをインストールします。 Quickstart $ mkdir my-project $ cd my-project $ vagrant layout init php で各種ファイルを生成します。生成された、 sandbox/osx/start.command (Mac) sandbox/win/start.bat (Windows) をダブルクリックしてしばらく待つ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く