PHP一般に関するアドベントカレンダーになればと思います。とはいえフレームワークの話題などもありだと思いますので状況に応じて細分化されて行けばよいかと思います。 関連 PHPStorm Advent Calendar 2013 http://qiita.com/advent-calendar/2013/phpstorm

(Last Updated On: 2023年12月8日) 追記:最近のOWASPガイドの更新でJavaScript文字列はUnicodeエンコードで安全性を確保するよう変更されました。元々このブログでもUnicodeエスケープのまま利用するように書いています。他の言語のユーザーはUnicodeエスケープを利用しましょう。PHPもASCII領域の文字をUnicodeエスケープするようにした方が良いと思います。これは提案して実現するように努力します。 JSONはJavaScriptのオブジェクトや配列を表現する方式でRFC 4627で定義されています。メディアタイプはapplication/json、ファイル拡張子はjsonと定義されています。 PHPにJSON形式のデータに変換するjson_encode関数とjson_decode関数をサポートしています。 JSON関数がサポートされている
これ以上ソースコードの負債を増やさないためにVisual Studioの静的解析とAzure PipelinesでCIを回す
先月末から一週間ほど旅に出ていたbokkoです。今回はpixivでのPHPのバージョンアップに関する取り組みの一部を紹介します。 pixivとPHP pixivではWebアプリケーションの開発で主にPHPを利用しており、今のところPHP5.3とPHP5.4で動いている環境が混在している状態ですが、これをPHP5.5化するプロジェクトが進行中です。 オペコードキャッシュとユーザキャッシュによるPHPアプリケーションの高速化 pixivのようなPVの多いWebサイト(2013年10月現在で38億/月)をPHPで運用する場合、 アプリケーションのパフォーマンスという観点ではもちろんのこと、運用にかかるコストの面でも APCやZendOpcacheが提供しているようなオペコードキャッシュ機能は必須と言えます。 サーバスペックが高いマシン(CPUコア数が16とか24)を使っているということもあります
久しぶりの更新です。最近、修行だと思って色々な本を読み漁っているのですが、やっとこさPHPのinterfaceが分かるようになってきた感じがあるので、まとめてみます。 インターフェースは、クラスから"ユーザー定義型"の能力のみを分離した言語機構です。PHPのそれはJavaのinterfaceのパクリです。 "ユーザー定義型"という単語を使いました。動的型付き言語のことを「型のない言語」と言う人がたまにいるんですが、とんでもねー間違いです。PHPにだって型はあります。変数が型を持たず、値が型を持っているというだけの話です。 interfaceを宣言する文法はクラスとよく似ていますが、キーワードclassの代わりにキーワードinterfaceを使います。中身は定義のないメソッドの宣言を書きます。なお、定数も含めることが可能です。 <?php interface FooInterface { c
PHPカンファレンス2013でPHP開発環境をVagrantで作る発表を行ったのですが、具体的なVagrantfileが欲しいという声を頂いたので、GitHubに公開しました。 ご自身で構築するベースになれば良いと思うので、どう作れば良いの?と言う方は参考にしてみて下さい。 なお、このリポジトリの Vagrantfile は、開発PC内の VirtualBox 上で開発環境として動かすことを想定しています。セキュリティについては考慮されていないのでご注意下さい。 vagrant-lapp-sample https://github.com/shin1x1/vagrant-lapp-sample このリポジトリは、PHPアプリケーション(CakePHP)をイメージしています。構成は以下です。 CentOS 6.4 Apache 2.2 PHP 5.4 PostgreSQL 9.3 phpPg
PHPは最近の他の言語とは違ってシングルスレッドなので、一回のリクエストで複数の処理を同時に実行したりといったことは通常はできません。 非同期処理はできず、常に上から順に処理を進めていきます。 どうしてもやりたいなら`php hoge.php &`などと別プロセスで動かすといった手段しかありませんでした。 http://d.hatena.ne.jp/milktea_cg7/20130529/1369821459 ところでなにやらpthreadsとかいうモジュールを見つけたので使ってみます。 http://www.php.net/manual/ja/book.pthreads.php LinuxであればPECLからインストールしましょう。 Windowsではバイナリが落ちてたので拾ってきます。 http://pecl.php.net/package/pthreads https://gith
追記 PHPでdefineのかわりにhidefをつかう必要はない - id:k-z-h トラックバックに対して反応を書いた事が無いんですが、ちゃんとした内容が掲載されていたのでこちらでも追記しておきます。エントリーアップ時にdefineを辞めてhidefに切り替えることを強く推薦したつもりは全くありませんでした。確かに僕が書いた「まとめ」の項目だけを見るとそう捉えれる事もできるのでまとめの項目を「hidefの導入を検討しても良いと思います」にしました。kazuhaさんが仰られているY!社の現状予想と僕の読解力の無さの話は置いておいて(笑)、その他defineの改善効果とPECLの話はご指摘通りかなと思いました。カンファレンス当日の発表の一部を深堀したつもりだったんですが、問題の本質に誤解を与えてしまう内容を書いた事は反省します。 その他の方からdefineとhidef以外でオブジェクト定数
(2013/10/09追記) PHP開発環境を構築するサンプル Vagrantfile をアップしました。 PHP開発環境のサンプルVagrantfile 第7回関西PHP勉強会で発表した下記の内容をベースに、より実践的な内容を追加しました。 PHPシステムの開発環境をVagrantで作ることを題材に、基本的な流れをお話しました。 ポイントは、プロビジョニングにシェルを使う部分と、やはり synced_folder ですね。AWS上にも同じ環境を構築できる部分ももう少し深くお話したかったのですが、時間が足りませんでした>< また、Vagrantfile があるディレクトリ(vagrant upしたカレントディレクトリ)も synced_folder となっていて、仮想マシンでは /vagrant としてアクセスできるということも知っておくと便利です。これを利用するとChefのtemplat
後半のセッションでは、「What the system is(共通性や可変性を分析する)」を説明しつつも、「What the system does」とは別のものとして切り分けることはできないという主張から、 DDD とリーンアーキテクチャとの比較、そしてパターンに関する議論が展開されました。 @remore が前半部分をまとめてくださっていまして、そこで出て来るいくつかの用語(Form, Structure, What the system is, What the system does)を前提として私のできる範囲で行いました。 なお当日のCoplien氏によるセッション内容は、許可を得た上でYouTubeにアップロードされていますので、より深くご覧になりたい方はこちらも併せてご参照下さい。 DCI Tokyo 1 - Lean Architecture by James Coplie
当日の発表資料がアップされはじめているようなので、今年も講演資料などの情報をまとめさせていただきたいと思います。随時更新予定です。 ※執筆時点では、WordCamp側の資料が圧倒的に不足しております…(´;ω;`)ブワッ 2013年9月16日 追記:WordCamp側の講演資料も追加しました! リンクの誤りや追加情報などございましたら、星影(@unsoluble_sugar)までご連絡いただけるとありがたいです。よろしくお願いします。 昨年の講演資料 ちなみに昨年の講演資料まとめはこちらになります。 PHPカンファレンス2012 & WordCamp Tokyo 2012 講演資料まとめ #phpcon2012 #wctokyo | Time to live forever PHP、WordPressに興味のある方は、ぜひご覧ください! タイムテーブル PHPカンファレンス2013 タイ
2013/8/29からの4日間、CakePHPの公式イベントであるCakeFestがサンフランシスコで開催されました。2年ぶりにアメリカでの開催となった今回は参加者も多くとても賑わっていました。今回のイベントの基調講演でCakePHP3の現状についていくつか情報が出てきましたのでご紹介します。 CakePHP3の気になる新機能 現在はブランチで開発されているCakePHP3ですが、今年のうちにはベータなどのリリースが行われ最終的なリリースは来年になる見込みです。PHP5.3を飛び越えて5.4に対応する形になり名前空間などコードの見た目をぐっと現代的に変える変更が数多く行われています。今回の発表で言及された変更点は下記のとおりです。 PHP5.4以降に対応 namespaceに完全対応 DATABASE_CONFIGが廃止され、Configureに統合 Composerに標準対応 ルーティン
PHPの関数定義はこんな変態的な書き方ができる - 頭ん中 に、続いて。アンリーダブルコードで勉強しようというのがあった、そのとある勉強会の発表ネタです。 これは、PHPのMarkdownパーサ の実装を可能な限りそのまま綺麗に変換してJavaScriptに移植しようという js-markdown-extra をやっていたとき、大ハマりして修正に苦労したバグの話から来てます。 演算代入。+= とか *= とかのやつ。関数型の人以外はきっと常用してますね。じゃあ問題。 <?php $tokens = array("a", "b", "c"); $tokens[0] .= array_shift($tokens); print_r($tokens); こうするとどんな結果が出力されるでしょうか。PHPです。 自身の先頭から要素を取り出して、それを先頭要素に文字列追加する。array_shift
2013/9/13に「PHPエンジニア養成読本」というムック本が技術評論社から出ます。 この本の巻頭記事を執筆させて頂きました。巻頭記事では本書のイントロダクションとして、PHP5.3/5.4/5.5の新機能と「いまどき」のPHP開発を紹介する2章構成になっています。 PHPを取り巻く環境は大きく変わっていっています。普段からそういった変化を追いかけている人は良いのですが、日常の開発に没頭しているとついそういった動きに気づかないままということがあります。また、昔のPHPのままのイメージで止まっている人も多いかもしれません。 そこで、PHP が大きく変化した 5.3(名前空間、クロージャ、LSB)から、5.4(トレイト、配列の短縮構文、ビルトインサーバ)、最新の 5.5(ジェネレータ、finally、パスワードハッシュ関数)を第1章で紹介しています。 第2章では「いまどきのPHP開発」という
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く