PHPには次の2種類の例外系が存在しますね。RuntimeExceptionLogicExceptionこれはどのように使い分けるべきなのかについて PHPのドキュメント(http://www.php.net/manual/)をベースに調べてみたので共有します。 まずは結論! RuntimeException系 : 運用で通常発生しうる例外。 発生してもバグとは限らない。通常の例外。 例) throw new RangeException("規定範囲外の値が入力されました");LogicException系 : バグ検出のために仕込む例外。 本来、実運用時には発生しない。発生したらバグ。 例) throw new LogicException("引数で数値以外を渡さないでください!!"); java にも同名の例外がありますが、java の使い分け方とは全く異なるので java 使いには要
※Ver1.2の情報なので最新バージョンと合わない部分があるかもしれません... タイトルそのまま。FuelPHP1.2のクエリビルダ関連を表にまとめました。 SELECT // SELECT * FROM... \DB::select() // SELECT `hoge`, `fuga` FROM... \DB::select(column1, column2...) \DB::select_array(array(column1, column2...)) // SELECT `hoge` AS `h`, `fuga` AS `f` FROM... \DB::select(array(column1, alias), array(column2, alias)...) \DB::select_array(array(column1, alias), array(column2, ali
PHPにはvar_dump()という関数があり、階層構造を持つオブジェクト(オブジェクトグラフ)をテキスト表現にできます。この情報を、グラフィカルで直感的に分かりやすい形式で出力するためのユーティリティがprint_oです。@koriymさんが開発されています。 koriym/print_o An object graph visualizer for PHPprint_oのインストール方法print_oはPHPのライブラリとしては単独で利用可能です。Webブラウザへの描画用に外部のJavaScript/CSSを利用していますが、これらはGoogleやGitHubにホストされたファイルを読み込むようになっています。したがってインターネットに接続された環境であれば、print_o本体のインストール以外に特別な手順は不要です。 たとえばcomposerを利用する場合は、composer.jso
programming talkHello, my name is Brandon and I'm a programmer from Halifax, Nova Scotia. I love programming, and this blog is a way for me to share my knowledge and passion for programming with others. I hope you find something of value here! I just released my latest project, util.php to GitHub. Util.php is a single file that you can include in any of your projects without worrying about conflic
段田です。 最近、PHPからiphone端末にPUSH通知を送る機能の開発に携わりました。PHPでプログラムを実装する場合、フルスクラッチとライブラリを使用するケースがあるのですが、各ケースでのポイントを忘れないよう書きたいと思います。 なおPUSH通知の概要、証明証の作成については省略します。概要などは下記の記事がわかりやすく、参考になりました。 Apple Push Notification サービス(APNs) の実装方法 iPhoneプッシュ通知まとめ フルスクラッチのケース フルスクラッチでやる場合、こちらのはてなの記事が参考になりました。 https://irss.hatenablog.com/entry/20111026/1319632548 しかし、試しに作成すると送信はできるのですが、下記の様な制約があることを知ります。 1つのメッセージで256バイトを超えてはいけない
Welcome There’s a lot of outdated information on the Web that leads new PHP users astray, propagating bad practices and insecure code. PHP: The Right Way is an easy-to-read, quick reference for PHP popular coding standards, links to authoritative tutorials around the Web, and what the contributors consider to be best practices at present. There is no canonical way to use PHP. This website aims to
PHPでnamed parameter的実装 2012-07-13 function example($options = array()) { $options += array( argKey1' => 'argDefaultValue1', 'argKey2' => 'argDefaultValue2', ); } CakePHPの内部実装がこうなっていることが多いのですが、なかなか使い勝手がよいので自作関数でもよく使ってます。配列をプラス演算子で繋げると、足すほうの配列のキーは、足されるほうに存在していたら上書きしないのでデフォルト値のように定義できます。 上書きしたいときはarray_mergeですね。 コメント / トラックバック コメントは受け付けていません。
2012年3月15日木曜日 phpを高速化する60の方法 01. static にできるメソッドは static として宣言しよう。(4倍速い) 02. echo の方が print より速い。 03. echo ‘文’,'字’; (カンマ区切り)の方が、’文’.'字’ (ドット連結)より速い。 04. ループの最大値は、ループ「内」ではなく「前」にセットしておこう。 05. 大きい配列のような変数は unset() してメモリを解放しよう。 06. マジックメソッド(例: __get, __set, __autoload)は使用を避けよう。 07. require_once はハイコストなのです。 08. include や require でファイルはフルパスで指定しよう。 09. スクリプト開始時間は time() でなく $_SERVER['REQUEST_TIME
こんにちは、アシアルの井川です。 Webサイトやバッチ処理のパフォーマンスを考える際、気を付けることは多々あります。全体の構造、アルゴリズムの効率化、…。その中の一つに、個々の関数の仕組みと実行速度の問題があります。関数の仕様は言語レベルで決定されており、それらを把握していないと、時としてパフォーマンスの大きな低下を招きます。今回焦点を当てるのは、配列要素を確認する際によく使われる関数です。 さて、皆さんは配列内に要素が存在するか否かを判定する場合、どうされていますか?この確認には、isset、array_key_exists、in_arrayなどいくつかの方法があります。isset、 array_key_existsは配列のキー値が存在するか確認し、in_arrayは要素の値を確認します。例えば、 <?php $list = array('a' => 1, 'b' => 1, 'c' =
“開発を便利にする5つのTips” フォーラム – CakePHP Users in Japan で紹介されていた記事です。 Make your life easier with these five CakePHP Quicktips ? Debuggable Ltd 1. prd という便利な関数を作成する pr($someVar); die; というコードをよく書くなら prd という関数を作ってしまえば、もっと楽できますね。 function prd($var) { pr($var); die; } 2. メール送信のデバッグ方法 Email コンポーネントを使用しているならデバッグモードが使用できます。 $this->Email->delivery = 'debug'; // debug モードにする $this->Email->send(); // メール送信 prd($thi
Zend Framwork2で使われそうなSignalSlotの利用メモ (元々はPhly_PubSubとしてマシューが開発を進めてたもの)。 もうZend\Sessionでは使われてますけど。 利用したZF2のソースは http://github.com/zendframework/zf2からpullしたものです。 (今InvalidArgumentExceptionのときrequireがないとかでるけど多分気のせい。きっと) その1 単純なロガーなどのオンオフに利用できそうなあれ emitの第一引数には"ポイント名"となる信号キー文字列を設定します <?php set_include_path(__DIR__.'/library/'); require_once 'Zend/Loader/Autoloader.php'; Zend\Loader\Autoloader::getInsta
October 10, 2010 - PHP 先日のPHPMatsuriのハッカソンにて作成したXHProfの結果がみれるCustomPanelですが、そのまま公開するにはお恥ずかしい感じだったので、多少マシに改修したものを公開してみます。 DebugKit, XHProfPanelとは CakePHPのDebugKitというプラグインがあり、それを使えばいろんなデバッグ情報がWeb画面上で確認できます。で、これにXHProfというphp拡張を使ってプロファイラ情報を見れるようにしてみました。 こんな感じです。 で、パネルを開くとこんな感じに各関数呼び出しごとの負荷情報などを閲覧できます。 さらに、"xhprof Result"というリンクをクリックすれば、XHProfが用意してくれているビューアを開くこともできます。ビューアではコールグラフも閲覧できます。 カスタムパネルの追加方法 he
相関図 マルチバイト文字列関数の個々の機能及び設定ディレクティブの機能の詳細については、PHPマニュアル等を参照して下さい。 ※ブラウザによりレイアウトが崩れる場合は、ページのソースからご覧下さい。 HTTP入力 GET POST Cookie 文字列 リスト ↓ ↓ ↓ mbstring.http_input:HTTP入力文字の文字コードを検出、内部文字エンコーディングに変換 *3 ↑ │ │ │*1 └→mb_http_input():検出結果出力*5 │ │ │ mbstring.http_encoding_translation:検出および変換機能のスイッチ │ ↓内部文字エンコーディングに変換 mbstring関数 ←───────┬──mbstring.internal_encoding←┬mbstring.language │ ↑↓ │↑↓ mb_decode_mimeh
本を買わずに解決するWeb制作の小技 ホームページ作成でちょっとしたことを参考書を買わずに解決する方法をPHP CSS Webデザイン jQuery Flashを中心に便利な技をまとめていきます!現在、長野県長野市の制作会社でWeb作成中! 電子書籍をePub形式に圧縮する場合、ローカルでは 電子書籍をiPad,iPhoneに配信できるePub形式の圧縮方法を使うとできる。 そこで、これをWebサーバー上でphpを使って自動生成させることができたので紹介 ローカルと同じことをWebサーバー上で行えば電子書籍(ePub)を 作ることができる。 複数ファイルをzipに圧縮さるために今回はPEARの PEAR::File_Archive を使いました。 圧縮するまえにePubを作るのに必要な構成ファイルを作ります。 そして、それらのファイルをzip圧縮します。 圧縮の流れとしては 圧縮するファイ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く