タグ

PHPに関するthreeMonthsのブックマーク (108)

  • PHP のソースコードを読みやすくするための工夫あれこれ

    PHP Advent Calendar 2011 に参加しています。 PHP に関する記事を日替わりで書こうというイベントですね。 昨日の redsnow_ さんからバトンを受け取ってこの記事が14日目。 読みやすいってどういうこと ソースコードは読みやすい方がいいし、 あとから修正しやすい方がいい。 難読化したい場合を除けば、 この点では誰もが一致するんじゃないかと思います。 でも、じゃあどういうのが読みやすいか どのようにしてあればメンテナンスが楽かについては 人によって意見がわかれそう。 ということで、普段こういうふうにやってるよ、という例と どうするのがいいかなあ、と思っているところと 人様のコードを見て「おおこれはいいね」と思ったものを書いてみます。 同じものを見て「そりゃあンた当たり前だろう」と思う人もいれば 「そんな書き方してる人がいるのか!」と驚く人もいるかもしれない。 そ

    threeMonths
    threeMonths 2011/12/14
    ->はアロー演算子とパーフェクトPHPに書いてありました
  • PHPは◯◯◯である | quipped

    当にPHPについて知りたい人は、別のところに行くことをすすめる。moriyoshiさんのスライドや、Lerdorfオジサンのページなんかがオススメ。 PHPは歯ブラシである PHPの発案者であるRasmus Lerdorf氏はこう言っている。 PHPは歯ブラシくらい興奮に値する。シンプルで、毎日使う便利な道具。だからどうした。歯ブラシについて書物を漁るやつがいるか? PHP is about as exciting as your toothbrush. You use it every day, it does the job, it is a simple tool, so what? Who would want to read about toothbrushes? PHPが他の言語と決定的に違うのは、作者およびコミュニティが、言語に対して道具以上の感情を抱いてないことだ。PHP

  • 2008-03-14 - p4lifeのメモ PHP のテスティングフレームワーク

    今回取り上げるテスティングフレームワークライブラリ,アプリケーションの品質を高めるために必要不可欠なテストですが,そのテストを実行するためのツールに関する情報を集めました. phpt PHPUnit SimpleTest lime DocTest PHPSpec phpthttp://qa.php.net/write-test.php PHP 独自のテスト機構 PHP 体,PEAR のテストで最も良く使われる.テストファイルの拡張子は .phpt TAP*1 対応:PEAR 1.5.0 から対応 pear run-tests コマンドに -t オプションを付けると run-tests.log に TAP フォーマットのログが出力される特徴: pear コマンドが使えればテストを実行できるため,大抵の環境で動かせる GET/POST/Cookie, php.ini 設定, 標準入力をパラメ

  • 「バッチファイルの二重起動の防ぎ方」PHP変 - がるの健忘録

    時々(あるいはしょっちゅう)あるのですが、バッチファイルが「二重に動くと吾しくねぇなぁ」な状況があります。 よくロックファイルによる二重起動防止とかを見るのですが…もうちょっと楽な手段があるので、まぁ「カードの一枚」程度に。 機構としては、至極一般的な「セマフォ」を使います。 セマフォは「プロセス間通信」の一環になります。…それ以上を知りたかったら、C言語系の書籍を適宜あたってくださいませ。 …そのうち解説するかもしんまい。リクエストはコメントもしくはリアルで直接どんぞ。 閑話休題 サンプルコードから、早速かつとっとと実装をまなんでみませう。 まずは「ロックされていない」状態を体感して確認。 バッチファイルはこんな感じ。ファイル名は「t.php」という、素晴らしく投げたネーミング。 // 処理 $pid = posix_getpid(); // print "start({$pid})

    「バッチファイルの二重起動の防ぎ方」PHP変 - がるの健忘録
  • GIF画像から情報を抜き取るチュートリアル PHPでバイナリプログラミングその3

    こんにちは、久保田です。 これまでの記事では、PHPでバイナリを扱うための基的な事柄を扱ってきました。第一回では、PHPではバイナリをどのように扱えばいいのか、第二回では、そもそもバイナリの反対のテキストとは何か、ということについて記述しました。今回の記事では、例として実際にPHPでGIF画像をどのように解釈していくかを解説します。 バイナリを扱うコードを書く際の手順 ではGIF画像をPHPで扱う前に、まずは一般的にバイナリを扱うコードを書く際の手順の例を以下に大雑把に示します。 1. フォーマットに関する資料を集める 2. 資料からフォーマットを理解する 3. プログラミング言語で実際に扱ってみる バイナリファイルはその種類によって各々が違ったフォーマットを持っています。GIF画像とPNG画像にしても同じ画像ですが、当然ながら内部のフォーマットは全く違います。従って、自分がこれから扱い

    GIF画像から情報を抜き取るチュートリアル PHPでバイナリプログラミングその3
  • PHPにおける文字列比較の2a問題 - Unknown::Programming

    PHPの文字列比較に関しては古の時代から皆がいばら道を通っているので今更何か語ることも無いんだけどやっぱり良くハマっちゃうということで軽くメモを残しておく。 とりあえずは先人達の苦悩ということでこのあたりの記事は見ておいた方がいいだろう。 素晴らしき自動的な世界〜或いは「型のない」世界〜 - がるの健忘録 PHPでの入力値チェックのすり抜け 上記記事の方が名づけたと思われる(w)いわゆる「2a問題」というものについて書いていく。 この2a問題というのはもう一度再確認すると <?php $a = '2a'; $b = 2; if ( $a == $b ) { // ここを通る } という問題のことだ。 何故こうなるかは元記事やマニュアル等に詳しく書かれているが、カンタンに説明すると「2a」という文字列を数値評価すると「2」として扱われるということだ。 実はコレはPerlでもまったく同じ問題を

    PHPにおける文字列比較の2a問題 - Unknown::Programming
  • はてなブログ | 無料ブログを作成しよう

    週報 2024/04/28 川はただ流れている 4/20(土) 初期値依存性 さいきん土曜日は寝てばかり。平日で何か消耗しているらしい。やったことと言えば庭いじりと読書くらい。 ベランダの大改造をした。 サンドイッチ 一年前に引っ越してからこんな配置だったのだけど、さいきん鉢を増やしたら洗濯担当大臣の氏…

    はてなブログ | 無料ブログを作成しよう
  • 2a問題とは コンピュータの人気・最新記事を集めました - はてな

  • より良いPHPerにならないための20Tips

    http://1-byte.jp/2011/03/20/20_tips_you_need_to_learn_to_become_a_better_php_programmer/ 良いPHPerだって?そんなものは丸めてゴミ箱にでも捨ててしまった方が資源の再利用になる分いくらかマシだ。 つまり俺たちがしなくちゃならないことは「より良いPHPerにならないため」に何ができるかってことなのさ。 それじゃ、始めよう。 1. ?>を使うな?>なんて使っちゃいけない。そう俺たちはBAD PHPer。 無駄なホワイトスペースの出力に悩まされるくらいなら対称性なんて丸めてゴミ箱にでも捨てた方がまだマシだ。非対称性こそが賛美。 2. 設定ファイルをPHPで書くなrequire_once("config.php"); 未だにこんなことやってるやつがいるのかいベイベー。絶対にダメだ。この一行を見たら俺は悶絶する

    より良いPHPerにならないための20Tips
  • escapeshellcmdの危険な実例

    補足 この記事は旧徳丸浩の日記からの転載です(元URL、アーカイブはてなブックマーク1、はてなブックマーク2)。 備忘のため転載いたしますが、この記事は2011年1月4日に公開されたもので、当時の徳丸の考えを示すものを、基的に内容を変更せずにそのまま転載するものです。 補足終わり 先日の日記PHPのescapeshellcmdの危険性ではPHPのescapeshellcmd関数の危険性について指摘しましたが、脆弱となる実例を挙げていなかったので、「当に危険なのか」と半信半疑の方もおられると思います。そこで、同関数が危険となる実例を考えたので報告します。 grepを使って、サーバー内を検索するスクリプトを考えます。 <?php header('Content-Type: text/html; charset=UTF-8'); ?> <html> <body><pre> <?php $k

  • phpの変数展開まとめ - milieuの日記

    backtickさんのコードをみて初めて知ったけど、PHPの変数展開(ダブルクォテーション中の波括弧、文字列中の置換とかなんとか)は意外と複雑。 $hoge = 'fuga'; echo "$hoge" ; #fuga が出力される echo "${hoge}"; #fuga が出力される echo "${'hoge'}"; #fuga が出力される・・・ echo "${"hoge"}"; #fuga が出力される(parse errorじゃないのか!) ついでに関数も展開できるらしい $f = 'str_repeat'; echo "{$f('abc ',3)}"; #abc abc abc が出力される echo "{$f('abc ', 1 + strlen("aa"))}"; #abc abc abc が出力される どうやら関数の引数はワンライナー書き放題っぽい。しかし、単にダブ

  • 手を動かして覚えるPHP 5.3新機能 日付(DateTime,DateInterval)編 | Act as Professional

    重要なことだから最初に伝えておくと、PHP5.3からは日付や時間の計算にUNIXTIMEなんて使わないでね。 2038年問題とかパッとみて、「これ何日間なの?」とか計算するのは、さよならしましょう。 手元にPHP5.3環境がある人は、インタラクティブモードを利用して実践しながら読むことをおすすめします。 さぁ、コンソールをひらいて、下記のコマンドを実行しましょう。 $ php -a DateTimeオブジェクトPHP5.3から導入された新機能として、日付に関するオブジェクトが増えました。 それが、DateTimeオブジェクトです。 $now = new DateTime(); echo $now->format("Y-m-d H:i:s") . PHP_EOL; 2010-12-28 23:00:20+09:00昨日、明日、来週、来月はこんな感じ。 $yesterday = new Dat

    手を動かして覚えるPHP 5.3新機能 日付(DateTime,DateInterval)編 | Act as Professional
  • TOM先生のテスト講座 PHPプロ!PHP講座新着順

    平素より「PHPプロ!」をご愛顧いただき、誠にありがとうございます。 2006年より運営してまいりました「PHPプロ!」ですが、サービスの利用状況を鑑みまして、2018年9月25日(火曜日)をもちましてサービスを終了させていただくことになりました。 サービス終了に伴いまして、2018年8月28日(火曜日)を持ちまして、新規会員登録ならびにQ&A掲示板への新たな質問、回答の投稿を停止させていただきます。 なお、ご登録いただいた皆様の個人情報につきましては、サービス終了後、弊社が責任をもって消去いたします。 これまで多くの皆様にご利用をいただきまして、誠にありがとうございました。 サービス終了に伴い、皆様にはご不便をおかけいたしますこと、心よりお詫び申し上げます。 件に関するお問い合わせはこちらよりお願いいたします。

  • PhpUnit - 最強のユニットテスト自動化ツール - Do You PHP?

    zip形式 tgz形式 gihyo.jpにPHPUnit3で始めるユニットテストというタイトルで記事を書きました。PHP5をお使いの方は、そちらを参照してください。 ここにある情報はかなり古くなっており、正しくなくなっている可能性があります。掲載しているサンプルコードiなどは、最新のPHPでは動作しない、もしくは、別途設定・調整が必要になるかも知れません。情報を鵜呑みにせず、あなたの手を動かして、あなたの目で確認してください。 PhpUnitは一時期PEARに登録されていましたが、現在は別プロジェクトとして活動しています。新しいURLはhttp://phpunit.de/です。 テスト。。。ああ、なんてイヤな響きでしょう。。。(^-^; 「テストすること」はプログラムの品質を保証するということで非常に重要な作業だ、ということは百も承知と思いますが、コーディングと比べてやはり「イヤ」なもの

  • 第1回 PHPUnit入門 | gihyo.jp

    はじめに 皆さん、テストしてますか? 近年、システム開発を発注する顧客や利用ユーザーの品質に対する要求レベルは格段に向上しています。そのため、システムの品質を保証するための「テストフェーズ」はますます欠かせなくなってきています。 ここで、一口に「テスト」といっても、フェーズによって以下のような様々なテストがあります。 ユニットテスト・単体テスト 結合テスト・システムテスト 総合テスト 受け入れテスト 負荷テスト セキュリティテスト 筆者の経験上、一般的なシステム開発でもっとも大きな工数を占めるのは、この「テスト」フェーズと考えています。なぜなら、テストフェーズは例外なく「繰り返し作業」だからです。前述の様々なテストフェーズで共通することですが、テストフェーズは「テストで発見されたバグ・障害を修正して再度テストを行う」という作業を何度も繰り返し行うフェーズです。あとのフェーズで不具合が発見さ

    第1回 PHPUnit入門 | gihyo.jp
  • PHP Advent Calendar jp 2010

    PHP.jp.2010 は PHP Advent Calendar jp 2010 - ATND 主導で開催されました. 開催期間は,2010/12/02 ~ 2010/12/25 となっています. 日 月 火 水 木 金 土

  • 「圧縮新聞」を作った - phaの日記

    僕は昔からロボットがロボットなりに変な文章を生成して喋ったりする人工無脳とかそういう仕組みが好きで、最近はそのへんの仕組みを勉強していました。それで大体仕組みの基はわかったので簡単なスクリプトを書いてみたよ。 圧縮新聞 このスクリプトはウェブ上にある新聞社とかのニュースの文章を元にして、バラバラにして圧縮してまとめた文章を作るので、ざっと眺めるだけでその日起こった事件の全体が何となくわかるかもしれません。リロードするたび文章は変わります。 生成例 しょうゆ・みそ業界大手のNOVA(大阪市)が入った郵便小包は、北朝鮮の鉄道網を連結する計画だったらしいことが21日、わかった。タンクに灯油を補給した。検案の結果、財政難などをほとんど与えずに6者協議の外相会議の早期再開に期待を表明した国と製薬会社に賠償を求めた。その後、死亡した。 しくみ こういった人工無脳みたいな文章生成をするには形態素解析

    「圧縮新聞」を作った - phaの日記
  • PHPを始めたばかりのころ自分なりにやってた工夫と、それこうした方がいいんじゃないのという提案

    PHPを始めたばかりのころ自分なりにやってた工夫と、それこうした方がいいんじゃないのという提案 2010年12月07日 09:00PHP PHP Advent Calendar jp 2010 に参加しています。 PHP に関する記事を日替わりで書こうというイベントですね。 昨日の slywalker さんに続いて6日目。 さて PHP というかウェブに関することは何もかも独学で 始めたばかりの頃は特に 一般的なやり方というものがさっぱりわかっていなかったので わかることの範囲内で自分なりの工夫をしてました。 そういう経験はとても大切だと思うんだけど、 かなり無駄な手間がかかっていたり やらない方がいいことをやっていたりもしたので 導いてくれる人がいなかったその頃の自分に対して こうやってはどうか、という提案を書いてみようと思います。 「なに、そんな愚かしいことしてたの」 と言いたくなるよ

    PHPを始めたばかりのころ自分なりにやってた工夫と、それこうした方がいいんじゃないのという提案
  • 新卒インフラエンジニア2年目

  • PHP開発者 Rasmus Lerdorf氏インタビュー ~PHPは「利己的」な開発者の集まり | gihyo.jp

    2010年9月24日・25日に開催された「PHPカンファレンス2010」にあわせて、PHP開発者のRasmus Lerdorf氏が来日されました。日を訪れるのは2度目という氏に、PHPの現状とその根底にある思想についてお話を聞きました。 現在の仕事について 大垣:昨年 Yahoo! Inc.を退職されましたね。現在はどのような仕事をされているのでしょうか? Rasmus:WePayという起業したばかり小さな会社にいます。WePayはカリフォルニアにある、グループで支払いを行う処理を行うベンチャー会社です。 大垣:グループで支払いを行う、というのは、どういうことですか? Rasmus:グループで何かを買いたいときに、グループとしてお金を管理したいですよね。例えば、大学で学生が集まってプレゼントを買いたいという場合があります。どんなものでも構わないですが、10人が集まって共同でオンラインショ

    PHP開発者 Rasmus Lerdorf氏インタビュー ~PHPは「利己的」な開発者の集まり | gihyo.jp