PHPによるデザインパターン入門 秀和システムから発売となった「PHPによるデザインパターン入門」(ISBN4-7980-1516-4・ 2006/11/23発売)を執筆しました(共著です)。 「PHPを使ってGoFパターンを見ていこう」的な書籍になっています。GoFパターンについては、それぞれパターンの説明とサンプルコードという構成です。サンプルコードは、CentOS4.4/Windows XP(SP2)+PHP5.1.x/5.2.0で動作確認しています。 目次は以下の通りです。 1章 デザインパターンの世界へようこそ デザインパターンって何? デザインパターンとは? オブジェクト指向 GoFパターン デザインパターンのメリット・デメリット デザインパターンを使うメリット デザインパターンを使うデメリット PHPとオブジェクト指向 PHPとは? PHP5でのオブジェクト指向開発 2章
ご報告が遅くなりましたが、去る2009/09/14に絶版となりました orz 出版から3年ですか。自分が最初に書いた本(雑誌ではなく)で、いろいろな思い入れはあったんですが、やっぱりCakePHPなどのフレームワークとかJavascript関連などの"今、熱い"技術の本と違って、"ブーム"が去るのが早いですね。。。 製作に関わっていただいた方、また書店で手に取っていただいた方、ありがとうございました。 で、これに伴い、校正前の原稿テキストを(一部を除き)順次公開しようと思います。基本的に『原稿テキストをHTML形式に変換したもの+図画そのまま』ですので、誤字/脱字、説明不足の箇所もあるかも知れませんがご了承ください。挿絵はありません。 http://www.doyouphp.jp/book/book_phpdp.shtml とりあえず、第1章、第4章のTemplateMethodを公開しま
ブラウザ上でC#やPHP5を動かせて遊んで学べる「CodeRun」が凄いです。 最初アプリケーションかなと思ったのですが、全てブラウザ上で動作するので、学習用やちょっとした動作確認に使えます。 ブラウザ上でコーディング 次のように、IDEアプリケーションのようなUIで、C#やPHP5.1を、ブラウザの上で動かすことが出来ます。 プロジェクト作成 New → Project を選ぶと、C#やJavaScript、PHPの色々なプロジェクトが作れることがわかります。 PHPのHellow World のソースが入ったコードがエディタに表示されました。このソースをいじって直接動かせます。 コードを動作テスト 次のようなコードを書いて「Run」ボタンを押してみます。 以下、出力例です。ちゃんと動きました。 c2d6c077f524683db2f00c0e975766810 1 2 3 4 5 6
This document discusses various ways to customize and extend PHP beyond its typical usage as a templating language. It explores how PHP's opcode cache, extensions, object model, and virtual machine can be leveraged. It also provides examples of PHP's lexer, parser, and how opcodes are generated from PHP code.Read less
PHP では以下のように new してすぐメソッドを呼べない <?php new DateTime()->getOffset(); なので、引数をそのまま返す関数を作ってやると <?php function expr($a) { return $a; } expr(new DateTime())->getOffset(); // OK! 便利だなー おまけ 配列アクセス用のも作っておくと便利 <?php function expr($a) { return $a; } function idx($array, $i) { return $array[$i]; } echo idx(idx(expr(new DateTimeZone('Asia/Tokyo'))->getTransitions(), 0), 'abbr') . "\n"; おまけ2 無名関数をそのまま呼ぶときにも使える。 <
IPアドレスから携帯のキャリアを高速に判定するsymfonyプラグイン「sfMobileIPPlugin」 Tweet 2009/4/23 木曜日 matsui Posted in ソフト紹介, 記事紹介・リンク | No Comments » ケータイサイトを作成する上で、キャリア判定は避けて通れないと思いますが、IPアドレスから携帯のキャリアを高速に判定するsymfonyプラグイン「sfMobileIPPlugin」というものがあるらしいです。 → ベイエリア情報局 IPアドレスから携帯のキャリアを高速に判定するsymfonyプラグインを作った [blog.bz2.jp] パッケージはopenpearに登録されています。 → openpear sfMobileIPPlugin [openpear.org] 仕組みとしては、あらかじめ登録されてある各キャリアのIPアドレス帯から、バイナリ
IPアドレスから所在地を調べたいと思ったことはありませんか?今回は,IPアドレスからその場所がどこなのかPHPで調べる方法をご紹介します。 それには,GeoIPライブラリが必要になります。PHPからこのライブラリの機能を使うには, PEARのNet_GeoIPをインストール Peclの拡張モジュールをインストール Apacheのモジュールとしてインストール という3種類の方法があります。 今回はPeclの拡張モジュールを使います。対象はLinux系OSになります。 1.GeoIPライブラリををインストール MaxMind社のホームページから,GeoIPライブラリをダウンロードし,インストールします。 cd /usr/local/src wget http://www.maxmind.com/download/geoip/api/c/GeoIP.tar.gz tar xzvf GeoIP.t
日経ソフトウエア2008年6月号にて掲載した「特選フリーソフト170」をお届けします。Partごとにテーマを決めて,そのテーマに沿ったフリーソフトを最後のページでまとめて掲載しています。2008年6月号の付録DVD-ROMには一部のフリーソフトを収録したため,それに関する表記がありますが,ご容赦ください。また,「お役立ちフリーソフト一覧」でもフリーソフトを紹介しています。 ※ 記事は執筆時の情報に基づいており,現在では異なる場合があります。 PHP本体と,PHPプログラミングに役立つソフトを紹介します。本文では特に,PHPフレームワークの一つ「Zend Framework」に注目。PHPプログラムを適切な形で分割して,生産性や保守性を高めることが可能です。統合開発環境「Aptana Studio」の使い方も紹介しています。 フレームワーク(Framework)を日本語に訳すと「枠組み」とな
どうやら僕はround()の人なんだそうです(参考資料)。それはそうとして、もう少し前までは==の人だった気がしますので、その頃の話題を再掲します。 僕は2年ほど前に「==がキモい件」などのタイトルで勉強会で発表していた頃がありました。PHPの==演算子の挙動について、啓蒙が必要だろうと考えていたためです。当時に比べれば最近はPHPの==演算子の不思議な挙動に関する記事を見る気がしますが、まだまだキモさの全容を把握している人は少ないような気もします。 PHPの==演算子の何がキモいのか、一言で言うと両辺の値の型をテキトーに合わせて比較する点です。言い換えると、「型はさておき、等しい値を意味しているようならtrue」という演算子です。 マニュアルの「PHP 型の比較表」の「==による緩やかな比較」を見てもキモさがチラホラ見えるんですが、今回は更に突っ込んだ比較表を作ってみました。 まずは以前
Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Errors Exceptions Generators References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Context options and parameters Supported Protocols and Wrappers Security Introduction
こんにちは。自分のブログを書くのはものすごく久しぶりのid:rskyです。何年知的便秘だったんだって感じですね。 表題のとおりこれからCコンパイラを作っていこうかと思います。同僚のDQNEOさんが<8cc.go>というコンパイラを作られていて、それに触発されて「Rustでやってみよう」ということで、<低レイヤを知りたい人のためのCコンパイラ作成入門>をCでなくRustでやっていきます。 Rust自体も初めてなので、それも含めてどんなものになっていくのか、自分でも楽しみです。 なお、今後このシリーズでは<低レイヤを知りたい人のためのCコンパイラ作成入門>を二重鉤括弧つきの『入門』と表記します。 開発環境 自分の開発マシンはMacですが、macOSはターゲットとせずLinuxで動くものを作っていきます。『入門』にも macOSはLinuxとアセンブリのソースレベルでかなり互換性がありますが、完
このドキュメントは、Zend Framework に貢献してくださる開発者個人 (あるいはチーム) のためにコードの書式やドキュメント作成の指針を示すものです。 Zend Framework を用いて開発をする人たちにとってもこのコーディング規約は有用でしょう。 これに従えば、Zend Framework のコードとの一貫性が保てるからです。 そのためには、ここで完全なコーディング規約を示す必要があります。 注意: 詳細なレベルまでの設計指針を示すこと以上に、 それを標準規格として確立することが大切だと考えています。 Zend Framework コーディング規約の指針は、 これまで ZF プロジェクトでうまく回っていた方針をまとめたものです。 このライセンスのもとで、 そのまま使用するなり多少変更して使用するなりすることができます。 ZF コーディング規約では、次のような内容を扱います。
例によってメタな方向に話を広げようと思うんだけど、Ruby VS PHP論争の背後には「自分の経験の枠組みは自分で変えられる」という発想の有無という問題があるのではないだろうか。 そう思ったきっかけはこれ。 影響力のある人 - L'eclat des jours(2008-01-31) artonさんは、Matzにっき(2008-01-29)のコメント欄にあった、「影響力の大きい人が発言してるので怒ってます」という一言レスに着目して、興味深い考察をしている。 影響力のある人ってのは、つまり権威ってことなんだし、自分で吟味しない人は常に一定の割合でいて(そうでなければ、世の中に権威という存在はありえないわけだが、実際、存在している)その人たちに影響を与える。 ってことは、権威がある人は、だめなものはだめ(良いものは良い)、と言うべきですね。 私も全くその通りだと思ったけど、冒頭のように考えて
それは、PHPユーザーは他の言語から学んでいるのか、という点。 PHPユーザーが他の言語ユーザーよりも弱いのは、そこなのではないか。 404 Blog Not Found:「PHPなめんな」と「(Perl|Python|Ruby)をなめんな」の違い 弾さんから説得力のあるPHPへの批判記事が初めて出てきたので、それに対して自分なりに考えたことを記録に残しておきたくなりました。 つい先頃まで、PHP開発者のML internals@lists.php.net で起こっていた議論がちょうど良い例題に思えるので、まずそれを紹介しましょう。 id:rskyさんといえば、PHP拡張機能&Zend Engineハッカーとして日本のPHP界ではつとに知られている方ですが、昨年の11月末にPHPに無名関数を導入するZend Engineに対するパッチを作成されました。 Zend Engineをハックしてみ
(2012/11/01追記) 4年ほど前の記事「PHP5.3.0alpha3のround関数の実装がPHP5.2.6と変わった - hnwの日記」でお伝えした通り、PHP 5.3.0から別の実装が採用されており、本ページで指摘しているような挙動のPHPは既に絶滅危惧種です。念のため。 さて、プログラミングの話題もたまには書いてみます。今回はPHPのround関数の挙動が変だ!という話題です。 round()は浮動小数点数を四捨五入する関数で、大抵の言語に同じ名前で実装されているかと思います。ではPHPのround関数の何が問題なのか、ちょっと試してみましょう。 $ uname -sro Linux 2.6.9-42.0.10.plus.c4smp GNU/Linux $ php --version PHP 5.1.6 (cli) (built: Feb 23 2007 06:56:38)
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く