タグ

関連タグで絞り込む (266)

タグの絞り込みを解除

phpに関するdenkenのブックマーク (243)

  • 色々なPHPフレームワークのパフォーマンスを比較 - cakephperの日記(CakePHP, Laravel, PHP)

    PHPフレームワークの速度比較では、HelloWorldを表示するのみの単純なアプリを用いた計測を元に比較表が作られることが多いです。特に後発のフレームワークは分かりやすい特徴付けとして速度をアピールする傾向にあるため、その比較表を元に N倍速いというアピールをしています。 PHPフレームワークを使うということは、DBまで絡めたWebアプリを作ることがほとんどなため、HelloWorldアプリの比較よりは、DBからレコード取得して表示するまでの処理速度を比較したほうがより現実に近い指標になると思います。特にCakePHP1系ではDBのデータ取得も独自ドライバになっていますし、モデルの処理も重いのでそこまで含めて他と比較したほうが良いと思ってます。 今回はDBから1レコード取得して表示するという簡単なアプリで各フレームワークの速度を評価しました。フレームワークに備わっているViewキャッシュ

    色々なPHPフレームワークのパフォーマンスを比較 - cakephperの日記(CakePHP, Laravel, PHP)
  • PHPの新しいround関数にバグをみつけた - hnwの日記

    PHP 5.3.0以降、PHPのround関数の挙動はChristian Seilerさんが提案したRFCに従って一新されています。この新しいround関数の仕様上の問題もしくはバグを見つけました。 以前の記事「PHP5.3.0alpha3のround関数の実装がPHP5.2.6と変わった」でこの新しい実装は「今までよりは良い実装」ではないかと書きましたが、撤回すべきかもしれません。ベースのアイデアとしては以前の記事にも書いた通り悪くないと思うのですが、考え漏れがあるような気がしています。 たとえば次のサンプルコードを見て下さい。 <?php ini_set("precision",19); var_dump(1000000000000000.125); var_dump(round(1000000000000000.125)); サンプルコード中の1000000000000000.125

    PHPの新しいround関数にバグをみつけた - hnwの日記
    denken
    denken 2011/04/09
    「対案もなしに現象だけバグ報告してみたらbogus扱いされてしまった」
  • 典型的PHPerの13の悪癖

    はてな匿名ダイアリーで不穏なことが書かれていたが、職場などで見かけない事も無いので解説をつけて内容を転載しておく。 典型的な“嫌なタイプ”のPHP使いの特徴を「典型的PHPerの13の悪癖」というタイトルでまとめてあるものだ。PHP育ちの叩き上げの人が陥りやすい問題も含まれていると思うので、紹介したい。 1. パスワード認証sshでサーバーにログインし、vimemacsで開発をする。 PHPerは、生産性が低く、セキュリティ的に問題のある開発環境を愛用しているケースが多々ある。セキュリティ向上の為にはsshは公開鍵認証で使うべきだし、生産性向上のためには、一般的にはローカルに開発環境を用意して、Eclipse/PDT等の統合開発環境を使うべきであろう。 2. SVNなどのバージョン管理システムで、使い方が分からないのでブランチを切った事が無い。 開発ツールの学習に無頓着なPHPerは少な

    典型的PHPerの13の悪癖
    denken
    denken 2011/04/06
    「vimやemacsで開発をする」「vimやemacsで開発をする」「vimやemacsで開発をする」
  • IBM Developer

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    IBM Developer
    denken
    denken 2011/03/19
  • PHPによるデザインパターン入門 - Do You PHP?

    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章

    PHPによるデザインパターン入門 - Do You PHP?
    denken
    denken 2010/03/15
    絶版本の校正前テキストを公開
  • PHPの言語仕様がウンコな理由個人的トップ10 - kなんとかの日記

    PHPerの問題点はPHPしか知らずに的外れなことを言うことだ」と、Javaしか知らなくて的外れなことを言っている連中にすら言われちゃってるPHPerのみなさん、こんにちは。 PHPは「使える道具」であることは事実です。しかし同時に言語仕様がウンコなのも事実。 ここでは、個人的にウンコだと思っているPHPの仕様を挙げてみたよ! htmlspecialchars() の名前が長すぎる これはほんとウンコ。おまえWebアプリのための言語やろが!なんでこの関数の名前がこんなに長いねん!こんだけ長かったらめんどくさがって echo $var としてまうやろが!WordPressのthemeでHTMLエスケープ忘れが多いのはおまえの名前が長すぎるせいだ! そんなわけで、全PHPerはこんな関数を定義するといいと思うよ。 ## echo $var; よりも短く h($var); と書ける! func

    PHPの言語仕様がウンコな理由個人的トップ10 - kなんとかの日記
    denken
    denken 2009/12/01
    php++というと、配列を[]で書けるようにしたqiqが思い出されますね
  • Modern PHP Programming @ PFI Seminar

    PHP Now and Then 2012 at PHP Conference 2012, Tokyo Japan (in japanese)Rui Hirokawa

    Modern PHP Programming @ PFI Seminar
    denken
    denken 2009/11/26
    ひげのおじさんをみんなでコンテンツ消費
  • PHP で Google 第二回 サイト収集ツール(クローラ)と本文情報抽出を PHP で実装 - 横転プログラミング

    前回に引き続き検索エンジンについて勉強中です。今回は少し PHP だと気軽に出来るかもしれない、出来ないかもしれないサイトの情報収集ツールつまるところのクローラを構築してみました。 GoogleYahoo などの検索エンジンは、いくら検索アルゴリズムを良くして、ランキングの精度をあげても、収集したサイトの情報あってこそで、元の情報が少なかったり、精度が悪いと、良い情報を提示することは出来ません。そんなわけでサイト情報を頑張って収集するクローラが必要です。 流れとしては 1. 起点のサイトを決めて、そこからリンクを再帰的に巡り情報を収集する 2. 収集したサイトから文を抽出する となります。 まず 2. のフェーズは、検索を行った際に、広告情報などでヒットされては困る(精度が悪くなる)ので、必要になってきます。 サイボウズラボの nakatani さんが実装されたものを PHP に移

    PHP で Google 第二回 サイト収集ツール(クローラ)と本文情報抽出を PHP で実装 - 横転プログラミング
  • htmlspecialcharsに関する残念なお知らせ - 岩本隆史の日記帳(アーカイブ)

    htmlspecialcharsのパッチ私案」に書いた件、バグレポートを出してみましたが、「すでに同じバグレポートがあるだろ」という理由により、あえなく却下されました。 せめて先方が「同じ」とみなしているレポート番号ぐらいは示してほしくて、そのようにコメントしましたが、お相手のjaniという人は気難し屋のようで*1、教えてもらえる気がしません。 私なりに探した結果、下記のレポートがくさいように感じました。 PHP :: Bug #43896 :: htmlspecialchars() returns empty string on invalid unicode sequence 「不正なUTF-8シーケンスの場合に空文字列を返すのはおかしい」というレポートで、私のそれとは正反対どころか、Shift_JISにもEUC-JPにも触れられていない別個のものです。もちろん、私はレポート送信前に

    htmlspecialcharsに関する残念なお知らせ - 岩本隆史の日記帳(アーカイブ)
    denken
    denken 2009/10/11
    PHP避けるしかない!
  • PHP以外では: 既にあたり前になりつつある文字エンコーディングバリデーション - 徳丸浩の日記(2009-09-14)

    _既にあたり前になりつつある文字エンコーディングバリデーション 大垣靖男さんの日記「何故かあたり前にならない文字エンコーディングバリデーション」に端を発して、入力データなどの文字エンコーディングの妥当性チェックをどう行うかが議論になっています。チェック自体が必要であることは皆さん同意のようですが、 チェック担当はアプリケーションか、基盤ソフト(言語、フレームワークなど)か 入力・処理・出力のどこでチェックするのか という点で、さまざまな意見が寄せられています。大垣さん自身は、アプリケーションが入力時点でチェックすべきと主張されています。これに対して、いや基盤ソフトでチェックすべきだとか、文字列を「使うとき」にチェックすべきだという意見が出ています。 たとえば、id:ikepyonの日記「[セキュリティ]何故かあたり前にならない文字エンコーディングバリデーション」では、このチェックは基盤ソフ

    denken
    denken 2009/09/18
    Pythonの話がない
  • ウノウラボ Unoh Labs: PHP5.3の新機能まとめ

    先日から「GnuCash」使って家計簿を付け始めたyukiです。 だいぶ長いこと複式簿記に触れていなかったので、思い出すのに一苦労でした。家計簿で「損益計算書」や「貸借対照表」、「キャッシュフロー」を見てみると新たな発見があっていいですね。是非オススメです。 さて今回は、先日の社内勉強会で行った「いまさらPHP5.3をあらためて見てみる」をレポートします。機能をサンプルコード交えてざっとチェックしていっただけですが、参考になれば幸いです。 参考:PHP 5.2.x から PHP 5.3.x への移行 新機能からチェックしていきます。まずは話題になっていた名前空間などから。 名前空間 # global.php namespace { class MyProject { public function getName() { return 'global'; } } } # unoh.php

    denken
    denken 2009/09/17
  • PHPで書いたはてな記法パーサ&レンダラをopenpearで公開しています - id:anatooのブログ

    HatenaSyntax \ Package \ Openpear はてな記法パーサ&レンダラをopenpearで公開しています。現在beta版です。 CodeReposに置いていたはてな記法パーサの後継ですが、コードは全て書き直されています。使い方も違います。 CodeRepos版とopenpear版との違いは以下の通りです。 pearを通してインストールする 構文木を取り出すことができる いくつか細かな部分に対応できるようになった パーサの実装が変わった pearを通じてインストールする CodeRepos版の様にファイルを一つ保存してインストール終わり、という風にはいかず、openpear版の場合はpearを通じてインストールしてもらうことになります。 インストールする方法はOpenpear :: Open PEAR Repository ChannelとHatenaSyntax \

    PHPで書いたはてな記法パーサ&レンダラをopenpearで公開しています - id:anatooのブログ
  • PHPの比較の素晴らしさ加減は正常

    if ("0x0A" == "10") { print '(´ε` )チュッ'; } チュッ。されちゃいます。 文字列であっても整数と解釈できる文字列の場合は勝手に型変換しやがる今世紀最大の愚行を犯してしまうってのは有名な話だよね。 文字列であっても整数と解釈できる文字列の場合は自動的に整数に型変換してくれる超便利機能があるってのは有名な話だよね。 だけどなんでコレが一致するかわけがわからんかった。 0x0Aは10進数で10になるので一致する。と、言いたいところなんですがそう単純な話じゃないんだ。 以下の例を目ん玉見開いて見て欲しい。 var_dump(0x0A); var_dump("0x0A"); var_dump((int)"0x0A"); var_dump((float)"0x0A"); var_dump(intval("0x0A")); 実行結果 int(10) string(4

    PHPの比較の素晴らしさ加減は正常
    denken
    denken 2009/06/20
    トリプルイコール使えってばっちゃが言ってた
  • PHP5のオブジェクト指向と連想配列のパフォーマンス - nokunoの日記

    突然ですが、PHPのオブジェクト指向と連想配列の違いってなんでしょうかね?最近PHP5のオブジェクト指向について触れる機会があったのですが、そもそも型が動的なPHPではポリモフィズムの恩恵も微妙だし、連想配列が強力なので構造体としてもあえて使う理由が見当たらないし… と、ここまで考えて、パフォーマンスに違いがあるのではないか? と思い当たりました。つまり、クラスを「静的な型」として定義し、その型からインスタンスを生成する以上、変数名などの「共通な部分」はクラスの情報として持っておけばよいわけで、1つのクラスからたくさんのインスタンスを生成するときに、メモリ使用量の点で優れているのではないか、と。結論からいうと、オブジェクト指向は、連想配列よりもメモリ使用量が少なく、計算時間も短いことが分かりました。以下、検証コードとその結果です。memory_get_usage()を使ってメモリー使用量を

  • PHPのすべらない話

    2009/05/19 00:57 id:moriyoshi から許可が出たので、2009年4月25日に行われたDjango Hack-a-thonのおまけ「PHPのすべらない話」の動画を一般公開しちゃいます。 PHP自体のコミッタによるPHPへの愛満載の動画です。 今までFlipClipで超近い人グループに対して公開していたのを勿体ないとぼやいたところ許可が出ました :) 手持ち撮影なので、酔いやすい人は注意してください :) きっと、moriyoshiの滑らないシリーズは続くんだろうなw Prev Entry Google API Hack-a-thonに行ってきました。 Next Entry もっと気軽に弁護士を使うべきだ

    denken
    denken 2009/05/20
    PHPからJavaのクラスを使ったりする
  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

    denken
    denken 2009/05/18
    foreachをつかわずにarray_*系関数を使う
  • PHPでのデバッグ方法

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog おひさしぶりです。オークション担当の山崎 賢です。 前回はPHP Serialize についてでしたが、 今回はPHPでのデバッグに関してお話します。 基PHPはインタプリタ(厳密にはPHPは内部で一度コンパイルしていますのでインタプリタとは言い切れませんが) のデバッグではログ埋め込みが手軽です。 しかし、まれにSIGSEGVやSIGBUSなどでPHPスクリプトが落ちることがあり、途方にくれます。 地道にログを埋め込んでいき、箇所を特定するのも手法の1つですが、今回はgdbを用いたデバッグ方法を記載したいと思います。 ■STEP1 まずは、プログラムが落ちることを目的として以下のようなPHP Moduleを作成します。 ・ ・

    PHPでのデバッグ方法
    denken
    denken 2009/05/02
    gdb
  • APIとの通信効率をよくする実装例(2) 簡易キャッシュ

    こうして見ると、仮に5分程度ライムラグがあってもさほど影響が無いものが多い、つまり毎度APIに問い合わせるのが無駄とも言えないでしょうか。(毎度通信すべきはなのは、上の表では「高」の部分のみ)。 そこで、APIから取ってきたデータ(XML)を少しの時間だけとっておくのはどうでしょう?(リアルタイム性が高いものや検索結果については毎度通信し、それ以外のものはキープしておき再利用)アクセスしてきたAさん、Bさん、Cさん・・・誰が見ても同じ内容ならなおさらみんなでシェアできれば、通信の数もそれにかかる時間も減るはずです。 このように一定時間データを溜めて再利用するシステムや行為を、キャッシュ(cache ※1)といいます。 どんな言語でも、こんな流れのロジックが書ければ実現できるでしょう。 if ( とっておいたXMLが賞味期限切れ ) { 捨てる; } if ( とっておいたXMLがある )

    APIとの通信効率をよくする実装例(2) 簡易キャッシュ
  • PHPer はある意味ソフトウェア開発の最先端にいるという話

    彼らは、プログラミングに関わる諸問題を科学的に研究してきているコンピューターサイエンスに対して、リスペクトも関心も払わず、対象の問題内容もろくに理解しせず自ら正しいかどうか確認する事もなく、表面的にとりあえず目的さえ果たせる(と思えれば)いいという発想で、適当にコピペでコーディングして、『あ、動いた。おk、出来た』と言うノリ。 あはははは。たしかにそういうノリは感じる。 PHP の開発者さんは,どちらかというと,ソフトウェア・エンジニアリング方面からではなく,Web デザイン方面から首を突っ込んでいる人が多いようで,スクリプティングも Web デザインの文脈で捉えられているところがあるんじゃないかと思ったりする。こゆノリって,例えば HTML/CSS の処理系(レンダラ)に深く触れない(触れられない)まま,「こう書いたらこう表示されました」と結果だけ見せるのに近い。こゆのがたまりにたまって

  • あーもう、ググれカスも通じないのかお前らは

    一個だけ具体例を挙げといてやるよ。後は自分で調べれ。 PHPは何がダメって節操がないとか$が汚いとか色々あるが、そんなことより一番困るのはphp.iniなんだよ。php.iniがあるおかげで「正しく動くプログラム」を書くのが絶望的に難しいんだよ。悪名高いregister_globalsだけじゃなくてたとえばmbstring.http_inputとか、いろんな設定がスクリプトから関与できないところにある。PHPの「正しい」スクリプトはそういうところを毎回条件分岐していかなきゃなんねーの。アホでしょう?たとえばpukiwikiならlib/init.phpを見ればisset()が乱舞しているわけで、そういうところを見て「ああ筋が悪いな」とか思えなきゃダメだ。センスないよ。 ちなみにphp.iniを書き換えられる環境ばかりだと思ったら大間違いだ。ってかホスティングサービスとかで変えれる方が珍しいぐ

    あーもう、ググれカスも通じないのかお前らは