Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

タグ

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

タグの絞り込みを解除

php.tipsに関するuzullaのブックマーク (19)

  • PHP5.4時代のprivateメソッドテスト手法 #php5_4

    PHP5.4 Advent Calendar 2011の7日目です。昨日は@madapajaさんの「PHP5.4+ で開発が行われている BEAR.Sunday フレームワークを動かしてみる」でした。 さてさて皆さん、ユニットテストしてますか? PHPもテストのライブラリが充実してきており、カバレッジ100%に情熱を燃やしている方も多いことでしょう。 ユニットテストで困るのが、private/protectedメソッドです。外から呼べないので、普通の方法ではテストできません。(protectedは適当なダミーのサブクラスを作ってそこからテストできますが、ちょっと面倒です。) まあ当然です。外から呼べないようにprivateにしているので、簡単に呼べたら逆に困るわけです。しかしながら、privateメソッドも外から呼んでテストできた方が開発ははかどるでしょう。この記事ではPHPでprivat

    PHP5.4時代のprivateメソッドテスト手法 #php5_4
    uzulla
    uzulla 2013/12/29
    「無名関数のコンテキストを動的に変更できる」これすごいな、しらなかった。
  • Easy CSRF Key - PHPでお手軽にCSRF対策するやつ

    (つかいかた) 1. 適当にrequireする。 require 'easy_csrf.php'; 2. 適当にsession_start()しておく。 session_start(); 3. (HTML) submitの手前に次の一文をいれる <input type="hidden" name="<?= EasyCSRF::KEY_NAME ?>" value="<?= EasyCSRF::generate() ?>" /> 4. データを受け取る箇所で次のようにする if (! EasyCSRF::check($_POST[EasyCSRF::KEY_NAME])) { echo '送信されたデータが、なんかおかしいです'; die(); } コード (こぴぺして使おう!) <?php // easy_csrf.php // by Hamachiya2 // 2012.02.15 cl

  • 5分でできるPHPセキュリティ対策 - ぼくはまちちゃん!

    こんにちはこんにちは!! Webプログラミングしてますか! よく「PHPセキュリティがダメ」とか言われてるよね。 でもそれって、べつにPHPが悪いんじゃなくて、 たぶん、セキュリティとかが、まだよくわからない人が多いだけなんじゃないかな。 がんばって勉強しようと思っても、なんだか難しい理屈が並んでいたりするしね…。 なので今日は、セキュリティ対策について、 「これだけやっとけば、わりと安全になるよ」ってことを、初心者むけに、大雑把に書いてみます! 理屈がわからなくても、最初はコピペでも、 なにもやらないより、やったほうがきっとマシになる! 1. XSS対策 動的なものを表示するとき、全部エスケープすればokです! (NG) あなたの名前は <?= $name ?> ですね! ↓ (OK) あなたの名前は <?= htmlspecialchars($name, ENT_QUOTES) ?>

    5分でできるPHPセキュリティ対策 - ぼくはまちちゃん!
    uzulla
    uzulla 2012/02/16
    PHPer的には、こういうのはウケそう(広まりそう)。継続的にこのURLが修正されればいいな…(とか
  • 過負荷に耐えるWEBサービス作成のための使えるPHPキャッシュテクニックまとめ:phpspot開発日誌

    過負荷に耐えるWEBサービス作成のための使えるPHPキャッシュテクニックまとめ。 サービス展開というとOSのチューニングや各種インフラソフトウェアのチューニング、更にはWEBアプリプログラム自体の効率化と、幅広い知識が必要になってきますが、PHPでWEBアプリを作る際によく効くキャッシュテクニックを用途・使いどころ別に説明します。 キャッシュをうまく効かせることで大幅に計算量を減らしてより多くのリクエストを少ないマシンで捌くことが出来、コストを下げたり、過負荷の悩みを減らせます。 個人レベルでのWEBサービス開発の場合、サーバ代がお財布を大きく圧迫しますが、最低のコストでサービスを賄うことに繋げられます、ということでPHPでサービス作ってやろうと思っている人は参考にしてみて下さい。 static変数でキャッシュ 特に何も入れなくてもそのまま使えるstatic変数。例えば、関数等で一定の計算

  • [メモ] PHPのfile_get_contentsを、HTTPリクエストに使うときのTIPS ::ハブろぐ

    file_get_contentsにまつわるTIPS $res = file_get_contents('http://example.com'); file_get_contentsはローカルのファイルパスだけでなく、URLを入れることでHTTPリクエストを送信することもできます。しかし、その仕様は奥深く難解であり、TIPSが数多く存在する関数でもあります。今回はそんなfile_get_contentsにまつわるTIPSをまとめてみます。 PHP5.3.3で確認していますが、大まかな挙動は他の5.x系でもそんなに変わらないはず。 仕様的なこと 2xx, 3xx以外のレスポンスボディを取得しない HTTPステータスコードが204または304でなければレスポンスボディを含んでいる可能性があります。しかし、file_get_contentsは、2xx, 3xxのみ( それが204や304であっ

    [メモ] PHPのfile_get_contentsを、HTTPリクエストに使うときのTIPS ::ハブろぐ
  • Call-time pass-by-reference has been deprecated

    仕事で以下のようなエラーが沢山はき出されていました。 Call-time pass-by-reference has been deprecated これを対応するためには、 htaccessに以下の一文を入れれば良いようです。 php_flag allow_call_time_pass_reference on ちなみに、allow_call_time_pass_referenceは 関数のコール時に引数を強制的に参照で渡す機能の有効/無効を設定 します。この機能は過去のものであり、将来のバージョンの PHP/Zendではサポートされない可能性があります。 推奨される方法は、関数宣言時に参照渡しとするべき引数を指定す る方法です。将来のバージョンでの動作を保障するために、このオ プションをoffとし、スクリプトがこの状態で正しく動作することを 確認することが推奨されます。 (この機能を使

    Call-time pass-by-reference has been deprecated
  • PHP4とPHP5を安全に共存させる方法 - ぎじゅっやさん

    PHP 12:10:11, by dozo , 138 words, 8189 views   既知の人も多いはず。 (ノ・・)ン。。。。。。(((●コロコロッ PHP4とPHP5を共存させると言う状況は、 まぁ、滅多にないわけですが、 両対応の開発環境を構築するとか、 レンサバにPHP4しか入ってないとか、 利用する機会がゼロというわけではないかも。 方法としては片方をApacheのモジュールとして、 もう片方をCGIとして動作させる。 (両方CGIでも可。) そして、拡張子を変えて動作するPHPを切り替えるという具合だ。 (拡張子が同じでも可能) PHP4とPHP5のインストール先を同じにすると共存どころかつぶし合うことになるので、 どちらか一方を意図的に変更しておく。 もちろんphp.iniも二つ用意する。 ポイントは

  • PHPコード最適化高速化TIPSまとめ | Webエンジニアのメモ

    TweetPocket PHPコード最適化高速化TIPSまとめPHP最適化 ベストプラクティス! 参考url: http://d.hatena.ne.jp/koto2/20080518/1211070116 01. static にできるメソッドは static として宣言しよう。(4倍速い) 02. echo の方が print より速い。 03. echo ‘文’,’字’; (カンマ区切り)の方が、’文’.’字’ (ドット連結)より速い。 04. ループの最大値は、ループ「内」ではなく「前」にセットしておこう。 05. 大きい配列のような変数は unset() してメモリを解放しよう。 06. マジックメソッド(例: __get, __set, __autoload)は使用を避けよう。 07. require_once はハイコストなのです。 08. include や require

  • セキュリティ専門家でも間違える!文字エンコーディング問題は難しいのか?

    (Last Updated On: )一見徳丸さんのブログは分かりやすいように思えますが、それは単純な実験により分かりやすいように見えるだけで複数の間違いがあります。 その間違いとは 意図の取り違い – 誤読 言語の仕様と実装の理解不足 HTTPやPHP仕様の理解不足 セキュリティ対策をすべき場所の理解不足 です。(※0) 徳丸さんは非常勤とは言え、国の出先機関の研究員であるし、その出先機関は職務放棄とも言える文書(「例えば、PHPを使用しない」と勧める文書)を公開している(いた?)のでしっかり反論しておく必用がありますね。IPAのあの文書は職務放棄と言える文書だと思っています。これについても後で意見を述べます。 意図の取り違い – 誤読 最初の間違いは私のブログのエントリ「何故かあたり前にならない文字エンコーディングバリデーション」に対する理解です。特にPHPユーザに対して文字エンコーデ

    セキュリティ専門家でも間違える!文字エンコーディング問題は難しいのか?
  • #40935 : Error/Exception with PDO::fetch/fetchAll and disabled ATTR_EMULATE_PREPARES – Mombu

  • Using PDO::MYSQL ?

    I've recently discovered a few things about how the mysql client library does things that seem a bit silly to me, so I'm going to share them with you. native prepared statements cannot take advantage of the query cache, resulting in lower performance. native prepared statements cannot execute certains types of queries, like "SHOW TABLES" native prepared statements don't correctly communicate colum

  • NameBright - Coming Soon

    pear-forum.org is coming soon This domain is managed at

    uzulla
    uzulla 2009/06/26
    pear エラー php 5.2.10
  • 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の比較の素晴らしさ加減は正常
    uzulla
    uzulla 2009/06/17
    キャストとかめんどいし、できるだけマッチすればお得じゃね?便利じゃね?俺天才じゃね?というPHP思想が大好きです。
  • 転送中

    uzulla
    uzulla 2009/05/27
    sqliteでInsertが出来ない時
  • PHPでレスポンスを出力した後に処理を続ける方法 - 昼メシ物語

    確かこんな感じ。 <?php // コネクションが切れても処理を続ける ignore_user_abort(true); $out = "\r\n"; $url = 'http://example.com/hogehoge'; // 適当なURL header('Content-Length: '.length($out)); header('Location: '.$url); echo $out; /* この時点でコネクション終了 */ // なんか適当に1000秒くらい。1000秒で以下の処理が終わらなければ中断 set_time_out(1000); /* ここに処理を書く */ ignore_user_abort(true); で、レスポンス後にも処理を続けられるようにする 適当なURLにリダイレクト←多分この辺でコネクション切れる やっちまえ!!! なんかリダイレクトしないとう

    PHPでレスポンスを出力した後に処理を続ける方法 - 昼メシ物語
    uzulla
    uzulla 2009/03/17
    ブラウザの停止を無視したり、バッチ処理をさせたり?
  • Compiling error - configure: error: Cannot find header files under /usr/local/mysql [Archive] - PHPBuilder.com

    uzulla
    uzulla 2009/02/24
    ビルドエラー mysql
  • PHP4から移行できない開発者へ、PHP4 & 5比較データ | エンタープライズ | マイコミジャーナル

    PHP: Hypertext Preprocessor PHP4は8月8日(米国時間)にサポート終了となった。以降、PHP4がアップグレードされることはない。セキュリティの観点からPHP4を採用している場合にはできるかぎり早いタイミングでPHP 5.2系へアップグレードする必要がある。しかし、とは言ってもPHP4からなかなか移行できないという場合も多い。PHP4から5への変更にともなう学習コストが懸念されるし、アプリケーションの更新も骨が折れる。 しかしアップデートしないわけにもいかない。Zend PHP 5 Certification BlogにDifferences Between PHP 4 and 5のタイトルのもとPHP4とPHP5の違いを簡単にまとめたものが公開されている。PHP5の学習を躊躇っている場合には概観を掴むためにもチェックしておきたい内容だ。簡単にまとめると次のよう

  • Build seven good object-oriented habits in PHP

    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.

    Build seven good object-oriented habits in PHP
  • 眠る開発屋blog|最新オンラインカジノのニューカジノ情報

    もしもこの世から「残業」が完全になくなったら 3年ぐらい前に読んだを思い出した。 1980−90年代の話ですが、残業について、 「時間外・休日労働の弾力的運用が我が国の労使慣行の下で雇用維持の機能をはたしている」(1985年労働基準法研究会報告)とか、「我が国の労働慣行の実情に合うような上限設定が可能かどうか定かでない」(1992年同報告)と、雇用維持の為のコストとして恒常的な長時間労働を是認する考え方が主流でした。 需要の低下に応じて、生産水準を下げなくてはならなくなっても、バッファがあるから解雇せずに大丈夫でしょ、という。。。 まぁ、 ところが、その後、労働法政策が内部労働市場の雇用維持から外部労働市場における移動促進に徐々にシフトしていったにもかかわらず、この長時間労働哲学には疑問が呈されないまま21世紀に至っているのです。 と著者は問題視しているわけだけど。 話変わって、最近友人

  • 1