2012年4月7日 関西PHPユーザーズグループ PHP勉強会
このエントリではPHPの組み込み関数でエラー時に例外を発生させる方法を紹介します。デフォルト状態では、PHPの組み込み関数の大半はエラー時に例外を発生させません。 前のエントリで、PHPのheader関数は戻り値を返さず、エラー時に例外も発生させないことを紹介しました。これは酷い仕様だと思うのですが、どうすればエラーハンドリングできるかを考えてみました。 header関数の場合、エラー(警告)そのものは出ているので、以下の二つの方法が候補として考えられます。 error_get_last関数で直近のエラーを取得してエラー処理する set_error_handlerで定義したエラーハンドラ関数でエラー処理する どちらもモダンな書き方とはほど遠い感じです。 前者は、BASICのon error resume nextを連想させますし、直近のエラーがどの箇所で起こったかは簡単には識別できないので
第58回PHP勉強会@東京 - events.php.gr.jp 久々のPHP勉強会だったのでPhakeについて発表をしてきました。とても久々のPHP勉強会でしたが、懇親会で色々お話もできて楽しかったです。 訂正 Phake::mock()の第2引数以降がうんたら書いてますけど、第2引数以降がコンストラクタの引数になるのはパーシャルモックのときだけでした。 id:sotarokのPHP 5.4の話のときにもいってたんですけど、「ゲッターセッター用意するの面倒だからAccessorってトレイトつくったよ!」「おれも!」みたいなことがあったりして、考えることはまったく同じですね。僕が作ってたときのソースさらしておきます。__call()をトレイトで実装しちゃうと、__call()が衝突しちゃうので一応メソッドわけてます。MagicCallMixerトレイトとか作ったけど消しちゃったらしい。 <
Alpaca-webkitはcapybara-webkitのwebkit_serverと通信を行ってPHPでwebkitブラウザを動作させるためのツールキットです。まだまだ鋭意製作中なのでがんがん変わりますがどういったことができるか、ということの説明をかいておきましょう。 Capybara-webkit Capybara-webkitはthoughtbot社が作成しているQtWebkitを利用してブラウザでのテストが行えるライブラリです。Capybara-webkit自体はrubyのライブラリとc++で書かれたQtWebkitのサーバーの二つが同梱されています。 このQtWebkitのサーバープログラムはソケット通信で内部のWebkitブラウザに指示を出しJavaScriptの実行や、HTMLの操作などなどが行えます。普通、PHPでこういったブラウザ関連のテストをする場合は現状Selen
Zend Framework Boilerplate 2 All-in-one platform for development of enterprise grade PHP applications with Zend Framework 2. Download View on GitHub What is ZFB2? Zend Framework 2 Boilerplate (ZFB2) is an all-in-one platform for development of enterprise grade PHP applications based on Zend Framework 2. ZFB2 is ... a Zend Framework 2 based code blueprint for enterprise-grade PHP applications a col
This blog post explains how to use Capistrano to deploy PHP, including some tips for integration with Jenkins. Background What is Capistrano? Getting started Taking it over for PHP Multi-stage deployments Tag selection Putting it all together Background Back when I worked at Imagini, we used the home-baked Cruftly Cloudly deployment system (built by @pikesley) to roll releases. It had some nice fe
こんにちはこんにちは!! Webプログラミングしてますか! よく「PHPはセキュリティがダメ」とか言われてるよね。 でもそれって、べつにPHPが悪いんじゃなくて、 たぶん、セキュリティとかが、まだよくわからない人が多いだけなんじゃないかな。 がんばって勉強しようと思っても、なんだか難しい理屈が並んでいたりするしね…。 なので今日は、セキュリティ対策について、 「これだけやっとけば、わりと安全になるよ」ってことを、初心者むけに、大雑把に書いてみます! 理屈がわからなくても、最初はコピペでも、 なにもやらないより、やったほうがきっとマシになる! 1. XSS対策 動的なものを表示するとき、全部エスケープすればokです! (NG) あなたの名前は <?= $name ?> ですね! ↓ (OK) あなたの名前は <?= htmlspecialchars($name, ENT_QUOTES) ?>
JavaScriptはPHPとよく似たシンタクスを持っています。PHPerにとっては親近感を感じる言語かもしれません。しかし、両者の言語仕様の違いはおそらくPHPerの想像以上です。『JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス』の著者、Douglas Crockford 氏が「JavaScriptはCの皮をかぶったLISP」と表現するくらいです。 PHPとJavaScriptが似ている(ように見える)が故に、はまりそうなポイントとその対策について簡単にまとめてみました。より詳しく知りたい方は『JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス』や『JavaScriptパターン ―優れたアプリケーションのための作法』を読んでみることをオススメします。 あと、自分も経験が浅いところがありますので間違
Loading… Flash Player 9 (or above) is needed to view presentations. We have detected that you do not have it on your computer. To install it, go here. Clean PHP - Presentation Transcript Clean PHPSebastian Bergmann May 20 th 2011 Hello! My name is Sebastian. Sebasti a n Hello! My name is Sebastian …and this is what I do: sebastian@thePHP.cc Co-Founder of The PHP Consulting Company sebastian@phpu
This document outlines many changes and improvements made between PHP 5.3 and 5.4, including removing legacy features, improving performance and reducing memory usage, adding new features like traits and array dereferencing, and adding or improving several functions. A timeline is provided targeting a December 2011 release of PHP 5.4 with betas occurring in September and October of 2011. Links to
勉強のために github の Cucumber + PHP の設定方法に関するドキュメントを翻訳してみた。 PHP だけでなく Ruby 以外のどんな言語で作られたアプリケーションにも当てはまるので、よかったら参考にしてみてください。 原文:PHP - cucumber - GitHub 多くの人は rails をテストするために cucumber を使っているので、ウェブ上にあるハウツーやドキュメントのほとんども rails 向けに書かれている。しかし cucumber は素晴らしいツールなので、どんな種類のウェブアプリケーションでもテストできるし、それがどんな言語で作られていても構わない。Selenium を使えばよいハウツーが用意されていることも確かだが、遅いし設定方法がダサいので、役に立つのは javascript をテストする必要があるときぐらいだろう。BDD のストーリーを書
Buy it now! Read a sample I remember people used to talk about market disrupters and truly the Raspberry Pi was just that. In a world that looked like it was falling into a corporate-owned walled garden of locked-down “smart” devices, like the Apple iPad and Google Nexus phones, came 10 thousand bare-naked Raspberry Pis that happened to run Linux. Who’d be mad enough to want to buy one of those? F
2011 年の年末に HashDoS というのが話題になった. Webアプリケーションに対する広範なDoS攻撃手法(hashdos)の影響と対策 要するにハッシュテーブルのキーのハッシュ値を意図的に衝突させ, 非効率な挿入を行わせることで, 効率的にサービスを妨害する, というものだ. ということをドヤ顔で書いてはいるが, 年末の時点ではこの HashDoS の原理については理解しておらず, 「データ構造を偏らせて計算量を増やすんだろう」ぐらいの漠然としたイメージしか無かった. その後, PHP の HashTable 構造体や, 一般的なハッシュテーブルの実装について調べることで, HashDoS の原理がわかってきた. ハッシュテーブルについては, いくつかの解説ページを見ながら, サンプルコードを Ruby に翻訳することで学習した. アルゴリズムとデータ構造編 第14章 ハッシュ探
Twigを使うことが多いですよね。そしてもっとデプロイを楽にしたいですよね。 PHPにはpharという(javaでいうjarみたいな)機能があってファイルをまとめることができます。 via: PHP: はじめに - Manual というわけで、Twigをphar化すれば良いというわけで以下に手順のメモ compile.phpを作成 まずはtwigをgitから取得 $ git clone https://github.com/fabpot/Twig.gitコンパイラーでtwig.pharを作成 <?php $phar = new Phar('twig.phar', 0, 'twig.phar'); $phar->buildFromDirectory(__DIR__ . '/Twig.git/lib'); $phar->compressFiles(Phar::GZ); $phar->setDe
インストール後はphpdocコマンドが使用可能になります。とりあえずテストにDoctrineをPHPDoc化してみたいと思います。 ※下記は自分の環境にての実行となります(phpdocコマンドがある箇所から実行してください sasa-no-MacBook-Pro:Desktop sasa$ /opt/local/bin/phpdoc -t ./doctest/doc -d ./doctest/Doctrine/ -o HTML:Smarty:PHP -t: DOCの出力先 -d:DOCにする対象フォルダ -o:出力形式の指定 コマンド実行中にWaringとか結構でたりしますが、うまいことそれなりに作成をしてくれます。 ただ、個人的にデフォルトのものだとデザインがいけてないです。そこでデザインにもこだわりたいというあなたへPHPDocumentorはSmartyを利用しているので、出力する
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く