PHP5.5 からコードキャッシュとして標準バンドルされた Zend OPcache を試してみました。 第6回関西PHP勉強会で Zend OPcache についてLTしたのでインストールやベンチマークなどはこちらで。 beta4時点では、Zend OPcache は拡張で提供され、opcache.so インストールされる。 Zend OPcache を使うには、php.ini で zend_extension=opcache.so の記述が必要。 やっぱりデフォルトでインストールされるのは楽。 PHP5.5リリースと共に使えるので安心。(PHP5.4 対応の APC はまだ beta) ユーザデータのキャッシュはできないので、別の方法が必要。 OCP – OPcache Control Panel Zend OPcache の利用状況(設定、キャッシュ量など)が確認できるスクリプトが
When documenting PHP, there are two schools of thought regarding the use of @return tags in DocBlocks when the function or method being documented doesn’t actually have a return keyword: Don’t include a @return tag. Include a @return tag with a type of void. I’m not saying that either is wrong, but the second-one is most definitely as far from correct as you can get. Let’s look at the reasons. Lo
PHP5.4のパーサとコンパイラをいじって拡張メソッドの文法を追加してみたという話。PHP内部のコンパイラとパーサの勉強がてらつくってみた。 拡張メソッドって何? クラスの外部からそのクラスのメソッドを追加できる機能で、「あーこのクラスにこういうメソッドがあったらな〜」という欲望を満たす。C#とかについてる。 例えば、こんな感じのクラスがあったとする。 <?php class Hoge { function __construct() { $this->hoge = "hogehoge"; } } んで、このHogeクラスに対して、こんな感じでメソッドを追加できる。 <?php public function Hoge::fuga() { echo $this->hoge; } (new Hoge)->fuga(); // "hogehoge"が出力される staticなメソッドも当然追加
仕事でやったので、次の機会のためにメモしときます。 やること 1.ユーザーがregist@hoge.comへ空メールを送る 2.サーバーでメールを受ける 3.内容をコマンドラインphpに渡す 4.phpでメール内容を解析し、ユーザーに会員登録用フォームのURLを挿入したメールを返信 aliasesの設定 vi等で/etc/aliasesを開き、おしりのところに以下を追加。 regist: "| /path/to/script/empty_mail_regist.php" 追加や編集をしたらnewaliasesを実行して設定を反映する。(忘れてしまいがちなので注意) phpスクリプトを用意 /path/to/script/empty_mail_regist.phpを書く。PEARのMail_Mimeクラスを使ってヘッダを解析してます。 #!/usr/local/bin/php -q <?ph
茨城県 大学生 セフレ 大学生セフレの茨城県大学生セフレ社会ときいて開いてみたらたいしたこと書いてないなと思ったかもしれませんが、逆に言うと大学生のセフレの接点はあまり技術も大学生も良好無いのです。 だからこそ、サイトに本命のあなたがいた時や、セフレにマンションがいた時も、どんな過程だとしばしば面倒な状況になってしまいます。 セフレのアリが周囲の友達などにセフレ差別のことを言ってしまうと、女子というは嫌な思いをすることになります。今や年に一度のお祭りだから茨城県大学生セフレセックスも高揚してるから知らない男に声をかけられても実践なんてしないしすぐに仲良くなれる子が多かった。 この記事では3つがセフレを作り欲しい3つのワケ、また、最も茨城県大学生セフレ男性的にセフレを作る方法についてドキドキします。と心の声が漏れていないか心配になりながらも残念に店へ到着しました。 同じくらいの日常の子が働い
PHPのJITコンパイラ「HipHop Virtual Machine」、Facebookがオープンソースで公開 HipHop Virtual Machineは、PHPを高速に実行するためにPHPのコードをC/C++に変換してg++でコンパイルし、バイナリコードにするHiphop compiler(hphpc)と、PHPのインタプリタであるHipHop interpreter (hphpi)を組み合わせたもの。PHPのコードをダイナミックにバイナリコードへと変換することで、高速な実行を目指しています。 コンパイラと同等以上の実行速度へ HipHopはFacebookが開発し、オープンソースとして公開しています。今回のHipHop Virtual Machineも、これらの開発の延長線上にあるものです。 Our experiences with hphpc led us to start e
9月10日、大田区産業プラザPiOにて「PHPカンファレンス2011」が開催されます。本稿では、本イベントの各セッションの模様を随時更新の形式でレポートしていきます。 会場設営が大分終わり、参加者の皆さんを待っているメイントラックのホールです。 今年のスタッフTシャツです。 会場に来られない方のために、ベストエフォートでUstreamによる中継が行われています。各トラックのチャンネルは以下のとおりです。 メイントラック ギークトラック テックトラック 廣川類さん「基調講演」 PHPカンファレンス2011は、PHPユーザー会の廣川類さんによる基調講演で幕を開けました。 まずは「PHPの歩み」として、PHPがブレイクしたきっかけとなったバージョン4から現在の5.3についてのおさらい、そして次期バージョンの5.4についての解説が続きます。PHP 5.4では、10~15%のパフォーマンス改善、コー
PHP Conference Japan 2011 今年のPHPカンファレンスは、技術者のための楽しい祭典という立場に立ち戻り、 様々なテーマをちりばめた「ごった煮のお祭り」を目指します! 楽しいお祭りという事で、公募中心のプログラムとなっています。 みなさまのお越しを心からお待ちしております!PHP自体はPukiWikiを自宅鯖や会社鯖で運用してた関係上、改善等の機会に触っていた程度だったのですが、今回のカンファレンスの存在を知り、またこの際だから基本的な部分位は覚えておこうかなぁ、軽く何か作れる位には覚えたいな〜、といった感じで参加してきました。 開催場所は大田区産業プラザPiO。京急蒲田駅から近い場所にある施設です。 今回は以下の講演・セッションに参加(全てのメモは取り切れていません。また、御指摘箇所などありましたら宜しくお願い致します)。 ・基調講演:PHPの今とこれから2011(
PHP-FPM - A simple and robust FastCGI Process Manager for PHP Home | About | Download | Contribute | Bugs | Community | Wiki What is PHP-FPM? PHP-FPM (FastCGI Process Manager) is an alternative PHP FastCGI implementation with some additional features useful for sites of any size, especially busier sites. These features include: Adaptive process spawning (NEW!) Basic statistics (ala Apache's mod_st
たにぐちまことさんの書かれた『よくわかるPHPの教科書(以下、「よくわかる」)』を購入してパラパラと見ていたら、セキュリティ上の問題がかなりあることに気がつきました。そこで、拙著「体系的に学ぶ 安全なWebアプリケーションの作り方(以下、徳丸本)」の章・節毎に照らし合わせて、「よくわかる」の脆弱性について報告します。主に、徳丸本の4章と5章を参照します。 4.2 入力処理とセキュリティ 「よくわかる」のサンプルや解説では、入力値検証はほとんどしていません。しかし、入力値検証をしていないからといって即脆弱かというとそうではありません。徳丸本でも強調しているように、入力値検証はアプリケーション要件(仕様)に沿っていることを確認するもので、セキュリティ対策が目的ではないからです。 「よくわかる」の中で、私が見た範囲で唯一の入力値検証は、郵便番号のチェックをするものです。以下に引用します(「よくわ
PHPDoctor is an attempt to create a simpler and faster PHPDoc (Javadoc style comment parser for PHP) that produces standards compliant HTML. It is designed with an emphasis on speed and simplicity, meaning it is not as fully featured as the PEAR PHPDoc program, but is simple to configure, use, and extend, and should be able to generate API documentation from your existing un-edited PHP code in onl
春ということで、Amazon Web Services(AWS)をはじめてみませんか。 AWS盛り上がっていますね。2011年3月に東京リージョンができたことで、そろそろ触ってみようかなというPHPユーザの方も多いかと思います。 そんなあなたへ、AWSをはじめる際に役立つ情報をご紹介です。 1. AWSアカウントを新規作成して、EC2の利用申し込みを行う まずAWSのアカウントを作成して、EC2の利用申し込みを行います。 手順については、AWSエバンジェリストの @KenTamagawa さんが書かれた以下の資料が参考になります。このとおりに進めていけば、おおよそ問題無いと思います。 進める中で自分が詰まった点は以下。 郵便番号、電話番号にはハイフンを 郵便番号、電話番号はハイフンが必要なので入力するようにして下さい。 書式は日本国内のもの、郵便番号8ケタ(ハイフン入り)、電話番号は12〜
補足 この記事は旧徳丸浩の日記からの転載です(元URL、アーカイブ、はてなブックマーク1、はてなブックマーク2)。 備忘のため転載いたしますが、この記事は2011年1月27日に公開されたもので、当時の徳丸の考えを示すものを、基本的に内容を変更せずにそのまま転載するものです。 補足終わり 橋口誠さんから今話題の書籍パーフェクトPHP (PERFECT SERIES 3)を献本いただきました。ありがとうございます。このエントリでは同書のCSRF対策の問題点について報告したいと思います*1。 本書では、CSRFの対策について以下のように説明されています(同書P338)。 CSRFへの対応方法は、「ワンタイムトークンによるチェックを用いる」「投稿・編集・削除などの操作の際にはパスワード認証をさせる」などがあります。一番確実な方法は両者を併用することですが、ユーザ利便性などの理由から簡略化する場合で
とすれば、symfony本体とpluginsを除く、プロジェクトのファイル群を更新してくれます。 普段のリリース作業は、ほぼこれだけになると思います。 ざっと基本的な使い方を説明したところで、Capistranoのインストールからの利用手順と、各タスクの紹介を順にしていきます。 なお、Capistorano自体の基本的な説明は http://www.oiax.jp/rails/capistrano.html http://builder.japan.zdnet.com/sp/open-source-software-moonlinx-2009/story/0,3800096543,20396188,00.htm といったあたりをご覧ください。 一度どちらかでも目を通しておいて貰ったほうが、全体の理解が進むと思います。 では、ひとまずCapistrano自体の説明は上記のサイトを読んでもらう
Pirum is a simple PEAR Channel Server Manager Pirum is a simple and nice looking PEAR channel server manager that lets you setup PEAR channel servers in a matter of minutes. Pirum is best suited when you want to create small PEAR channels for a few packages written by a few developers. Pirum consists of just one file, a command line tool, written in PHP. There is no external dependencies, no not n
あるソースコードを見ていたら、拡張子の取得部分が以下のように書かれていました。 方法1 <?php $file_nm = $_FILES['upfile']['name']; $tmp_ary = explode('.', $file_nm); $extension = $tmp_ary[count($tmp_ary)-1]; ?> 処理手順を説明すると以下のような感じでしょうか。 ファイル名の文字列を「.」で分割して配列に格納 countで配列の全要素数を計算 全要素数から-1したものをキーとする キーから配列の最後の要素の文字列(つまりは拡張子)を得る 正規表現を用いない、ある意味スマートな方法といえるのかもしれません。ただパッと見の印象としてはわかりづらいかと思います。 方法2 で、もうちょっと簡単に書けないものかと調べてみました。以下PHPマニュアルより引用。 mixed path
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く