タグ

PHPに関するhildeのブックマーク (528)

  • finallyな書き方、デストラクタな書き方

    前回の記事の補足。微妙にコード例がわかりにくい気がしたので、同じようなコードをfinallyで書いた場合とデストラクタで書いた場合の比較をしてみます。 題材 やっぱりファイル操作しか思いつかなかったので、ファイルを追記モードで開いて書きこむだけのlogger()関数を実装することを考えました。かなり適当な作りですので、実用性は微妙です。 logger(file, message, time=null) string file: 書き込むファイル名。もし書き込めないファイルを指定した場合はdefault.logに書き込む。default.logは必ず書き込めるものとしてよい。 string message: 書き込む文字列。 string time: ログに出す時間を指定する。省略した場合は現在時刻が書き込まれる。 fileに書き込めないファイルパスを突っ込んだ場合、timeにパースできない

    finallyな書き方、デストラクタな書き方
    hilde
    hilde 2011/12/26
  • 試そう!PHPコードを解析して修正点を指摘·phpca MOONGIFT

    phpcaはPHPを静的に解析して小さなミスやコードの修正点を指摘してくれるソフトウェアです。 PHPを書く際にどう書けば小さなミスによるバグの発生を防げるでしょうか。一定の基準に沿って記述することで整然としたコードを実現し、可読性をあげることでバグの混入を防ぐことができます。そこで使いたいのがphpcaです。静的にPHPファイル(ディレクトリ単位も可)を解析し、修正すべき場所を指摘してくれます。 解析処理を実行しています。PHPのパスと、解析したいファイルやディレクトリ名を指定して実行します。解析処理中は随時メッセージが出力されます。 メッセージ例です。タブの利用や行の使い方に関してなどメッセージが表示されます。 ?>がない場合もメッセージが出ます。これはPHPの書き方としては逆かも知れません(確かない方が良いという話なので)。 PHPを書く上でありがちなミスやバグにつながりそうな指摘を

    hilde
    hilde 2011/12/26
  • PHPでの画像処理が楽々かつコードも綺麗に書けるPHP5.3用以降用ライブラリ「Imagine」:phpspot開発日誌

    Welcome to Imagine’s documentation! ? Imagine, image manipulations reloaded PHPでの画像処理が楽々かつコードも綺麗に書けるPHP5.3用以降用ライブラリ「Imagine」 クラスはネームスペースで分けられて作られており、PHP5.3以降で利用可能。 サムネイル作成や切り取り、図形描画などのよく使われる処理をオブジェクト指向できれいに、あとで見ても分かりやすい状態でコードが書けます。 コード例は次のような感じで、メソッドチェーンを利用して直感的なコードが実現できているのがわかります。 こうしたものでネームスペースを使ったものって無かったので、ネームスペースちゃんとやりたい方にはよさそうですね。 関連エントリ 画像の縮小やトリミングに便利なPHPクラスライブラリ「Zebra_Image」 TwitterやFacebo

    hilde
    hilde 2011/12/25
  • Jenkins で PHP の CI を、ついでに、BDD(ビヘイビア駆動開発) もやってみよう♪(実は失敗 orz) : : lefthandz.org

    Python ばかりやってましたが、クラウドに近づくためには基中の基 PHP も習得しなければと言うことで、奮闘しています。 さて、何かものを作ろうと思ったときに、仕様に想いを馳せますが、覚えていられません。かと言って、仕様書を書くのも面倒なので、いっそのことテストコードにしてしまおうと。そして、テスト結果は記録しておきたいなと。 で、さっそく PHP の CI環境をチェックしました。 基は Jenkins x Phing Plugin x xUnit Plugin です。 ここで TDD するには、PHPUnit を使うところですが、TDD ではなく、BDD (ビヘイビア駆動開発) というのを知ったので、ついでに、それを実現する PHPSpec も導入してみます。 PHPSpec とのつなぎは Stagehand_TestRunner です。 (注記:試みは失敗しました orz 理

    hilde
    hilde 2011/12/25
  • ずっと無料で使えるPaaS型クラウドのまとめ。2011年版

    PHPの実行環境をPaaS型クラウドとして提供している「PHP fog」はブログで、いままで6カ月だった無料サービスの利用期間を、永久に無料のままにすると発表しました。しかも3つのアプリケーションまで無料にするとのこと。 もちろん無料で使えるリソースの範囲はそれほど大きくありませんが、PHPアプリケーションを自由にデプロイできるため、例えばWordpressを入れて自由にブログを運営する、といったことができるはず。 実はPHP fogだけでなくPaaS型クラウドでは無料でずっと利用できるコースを設定しているサービスがいくつもあります。この機会にまとめてみました。 PHP fog まずはそのPHP fog。名前の通りPHPの実行環境をクラウド上で提供します。MySQLデータベースもあらかじめ用意されており、WordPress、Drupal、Sugar CRM、Joomlaといった有名どころの

    ずっと無料で使えるPaaS型クラウドのまとめ。2011年版
    hilde
    hilde 2011/12/09
  • A PHP Christmas Miracle - 3 Frameworks, 1 app

    In this presentation, we walk take a flat PHP4-style application and gently migrate it into our own "framework", that uses components from Symfony2, Lithium, Zend Framework and a library called Pimple. By the end, you'll see how any ugly application can take advantage of the many wonderful tools available to PHP developers.Read less

    A PHP Christmas Miracle - 3 Frameworks, 1 app
    hilde
    hilde 2011/12/07
    レガシーチックなPHPにどんどんライブラリをつなげてモダンにしていくマジック
  • DBのパスワードをapplication.iniから取り除く(Zend Framework)

    Zend_Application_Resource_Dbを使うと、Zend_Dbの設定をapplication.iniに書くだけでZend_Dbの初期化ができるようになります。 [production] resources.db.adapter = "Pdo_Mysql" resources.db.params.dbname = "hoge_db" resources.db.params.host = "www.example.com" resources.db.params.username = "app" resources.db.params.password = "password" 設定ファイルに書けるということは、アプリケーションの実行環境(production / development)に応じて接続するDBの名前を変えたり、接続先hostを変えたりできるということです。いち

    DBのパスワードをapplication.iniから取り除く(Zend Framework)
    hilde
    hilde 2011/11/11
  • PHPにfinallyはないけどデストラクタがあるよ

    PHP finallyで検索すると、「PHPにはfinallyがない。欠陥言語だ!」という主張の記事がたくさんヒットします。これに対してPHPを擁護している記事があまりなさそうなので、PHPを擁護してみることにします。 finallyとは何か まずはおさらい。 try~catch~finallyは例外処理を行うための構文です。tryで例外が発生するかもしれない処理を書き、catchで例外が発生したときの対処を書き、finallyでは例外が起きても起きなくても実行される処理を書きます。…というのが初歩的な説明ですが、このfinallyの解説は十分ではありません。 finally節は、途中でどんなことが起ころうとも必ず実行されるというかなり特殊な性質を持っています。たとえば以下のJavaScriptのコードはいずれも「try」「finally」と表示します。tryの中でgoto相当の構文を実行

    PHPにfinallyはないけどデストラクタがあるよ
    hilde
    hilde 2011/11/11
  • PHP_Depend - パッケージ単位のメトリクスを測定する - Do You PHP はてブロ

    Javaの世界には、パッケージ単位の「メトリクス」を測定するツールがいくつかあります。ソフトウェアのメトリクスとは、ソフトウェアを計測する方法およびその尺度のことを意味します*1。その尺度を測るツールの1つであるJDependの場合、 パッケージに依存する外部パッケージの数 パッケージが依存する外部パッケージの数 抽象度(パッケージに属する全クラスのうち、抽象クラスもしくはインターフェイスの割合) 不安定性(外部に依存する/される割合) などを数値で確認することができます*2。 前置きはここまで。 で、題。 そのJDependを使ってPHPパッケージのメトリクスを測定するPHP_Dependというツールがあるようです。 http://www.manuel-pichler.de/archives/28-PHP_Depend-0.8.0beta1-released.html JDependで

    PHP_Depend - パッケージ単位のメトリクスを測定する - Do You PHP はてブロ
    hilde
    hilde 2011/10/07
  • 素のPHPをテンプレートエンジンとして使うときのコーディング規約

    プログラムとしてPHPを書くときのコーディング規約は、PEARやZendなど代表的なものがたくさんありますが、テンプレートエンジンとしてPHPを使う場合にはそのまま適用しにくいものです。 テンプレートエンジンのコーディング規約って、検索してもあまり見つからなかったので、個人的に採用しているものを晒してみます。あんまり語る人を見たことがないので、「俺はこうしてるよ」とか「ここキモくね?」とかご意見いただけるとうれしいです。 目指すところ 複雑なロジックをテンプレートに書かない / 書けないように規約で縛る 少しでも読みやすさを追求する できあがりのHTMLの美しさも追及する <%= $this->doctype() %> <html> <head> <%= $this->headMeta() %> <%= $this->headLink() %> <%= $this->headTitle()

    素のPHPをテンプレートエンジンとして使うときのコーディング規約
    hilde
    hilde 2011/10/02
  • TwitterやFacebookへのログイン機能をこれ1個で実装できるPHPライブラリ「HybridAuth」:phpspot開発日誌

    TwitterやFacebookへのログイン機能をこれ1個で実装できるPHPライブラリ「HybridAuth」 2011年08月22日- HybridAuth, Open Source Social-Signle-Sign-On Solution for authentication through Facebook, Twitter, Google, Yahoo, MySpace, LinkedIn, AOL, Vimeo, FourSquare, OpenID and other Identity providers TwitterやFacebookへのログイン機能をこれ1個で実装できるPHPライブラリ「HybridAuth」 Facebook, Twitter, Google, Yahoo, Windows Live, MySpace, LinkedIn, FourSquare, O

    hilde
    hilde 2011/09/24
  • 最近の mbstring 動向について(PHP 5.4〜) - t_komuraの日記

    PHP 5.4 に向けて、久しぶりに PHP の mbstring に対して機能追加と修正がありましたので、メモしておきます。 PHP 5.4.0 の正式リリースまでに「十分なテストが必要」とのことですので、気になる方はテストに参加した方が良いと思います。 変更点は以下の通りです。 携帯絵文字のサポート 正しい UTF-8 チェックの強化 詳しくは以下のページを参照してください。 mbstring/libmbfl:携帯絵文字とUnicode 6.0の相互変換 mbstring/libmbfl 正しいUTF-8チェックの強化 携帯絵文字のサポート 開発中の PHP-5.4.0alpha3 で新たに追加された文字エンコーディングは以下の通りです。 SJIS-Mobile#DOCOMO SJIS-Mobile#DOCOMO-PUA SJIS-Mobile#KDDI SJIS-Mobile#KDD

    最近の mbstring 動向について(PHP 5.4〜) - t_komuraの日記
    hilde
    hilde 2011/08/13
  • コードカバレッジ測定ツールPHP_CodeCoverageをCakePHPで使ってみた

    PHP_CodeCoverageで、CakePHPのユニットテストのコードカバレッジを表示してみました。 CakePHP標準のテストランナー(test.php)でも単一のテストケースについてはコードカバレッジが表示できるのですが、All tests の時はコードカバレッジが表示されません(All testsでも表示されることもあるようです。hiromi さん、ありがとうございます)。 そこでPHP_CodeCoverageを使って、All testsのコードカバレッジを表示してみました。 1. PHP_CodeCoverage インストール PHP_CodeCoverageは、PHPUnitでおなじみのSebastian Bergmannが開発した、コードカバレッジやCRAPを計測、表示するツールです。 PEARパッケージで提供されているので、pear コマンドでインストールします。 20

    hilde
    hilde 2011/06/16
  • ウノウラボ by Zynga Japan: PHPで利用出来るテストと開発に便利なツール

    こんにちは。yukiです。 今日はテストや普段の開発に便利なツールのご紹介をしたいと思います。PHP限定のツールですので、ご了承下さい。 ZyngaJapanでは、昨日リニューアルオープンした「ファームビレッジ」でも、Jenkins(旧Hudson)によるCIを行って開発しており、TDDやJenkinsでのCIを利用する文化がだんだんと浸透してきています。Jenkinsのプラグインとして利用できるものも多くありますが、当然ながらコマンドラインからも利用出来ますので、コミット前に自分のコードをチェックすることもできます。 phpcpd コードの中でコピー&ペーストで記述されている部分を検出してくれます。 どの程度の重複から検出するかを柔軟に設定できるので、まず大きな部分から修正するなど判断ができ便利です。 $ phpcpd /path/to/project phpcpd @package_v

    hilde
    hilde 2011/06/16
  • PHPでセキュリティを真面目に考える

    オープンソースカンファレンス2011 Hokkaido #osc11do 「PHPセキュリティを真面目に考える」 LOCAL PHP部 佐藤琢哉(@nazo) http://labs.nazone.info/Read less

    PHPでセキュリティを真面目に考える
  • PHP Reset

    This year second versions of Symfony and Zend Framework are being released, and they are dropping compatibility with older PHP versions than 5.3. Many libraries that take full advantage of PHP 5.3 features and were written from scratch with today's best practices are also appearing. Git and particularly GitHub usage is rising in the PHP community. It is time for everyone to move forward, at the ri

    PHP Reset
    hilde
    hilde 2011/06/02
  • phpfog がヤバい件 2011-05-31 - c/fe

    最近PaaS流行ってますね、dotcloudとか。 正直dotcloudはかなりイケてるんですが、ややこしいのがいけません!!*1 普段PHPとかいうゆるふわコードをかいてると、ウェブとDBが別のインスタンスとか、よくわかんない!PSGIとかよくわかんない!(嘘です) ということで、ゆるふわphperでも使えるPaaSがphpfogなのです。 phpfogについて https://www.phpfog.com/ 詳しくはググれなんですが、まじで情報無い。 ざっくりしたことを言うと、phpが動くPaaSであり、つまりGoogle App Engineみたいなものです。 さらにざっくり言えば、まあレンタルスペースの一種です。 レンサバなら別に今もつかってるし…という愛されphperさん、貴方の考えは概ね間違ってないんですが…*2 ほら、クラウドとか色々回りが言ってるじゃないですか、今までにあり

    phpfog がヤバい件 2011-05-31 - c/fe
    hilde
    hilde 2011/06/02
  • PHPもやらなきゃJenkins « BEAR Blog

    改名なのかフォークなのか、とにかくHudsonプロジェクトはHudsonとJenkinsに分かれました。(開発者はフォークではなく改名と主張していて、この辺りの話はinfoQが詳しいようです。http://www.infoq.com/jp/hudson ) ※前回の記事で紹介したphp-hudson-template はphp-jenkins-template に変わっています。 またPHPUnitで有名なSebastian氏がbuld.xmlを自動で作成してくれるPPW (PHP Project Wizard )というツールをリリースして、面倒だったプロジェクトの設定ファイルbuld.xmlの作成がとても簡単になりました。 Sebastian氏はhttp://jenkins-php.org/というPHPでJenkinsを使うためのガイドをするサイトも用意しています。以下はその補足です。

  • 第40回 MOPS:安全性の高いパスワードハッシュ作成ツール - phpass | gihyo.jp

    第32回 PHPセキュリティ月間(Month of PHP Sercurity)で「PHPセキュリティ月間」(⁠MOPS - Month of PHP Security)について簡単に紹介しました。 今回はパスワードを安全に保存するツールの紹介です。今まで数回に渡ってMOPSの成果の一部を紹介してきましたが、今回で最後です。 MOPS Submission 10: How to manage a PHP application’s users and passwords http://www.php-security.org/2010/05/26/mops-submission-10-how-to-manage-a-php-applications-users-and-passwords/index.html この論文は1位を取得した論文です。Drupal 7でこのライブラリが利用されてい

    第40回 MOPS:安全性の高いパスワードハッシュ作成ツール - phpass | gihyo.jp
  • PHPを使っているすべての人が知るべき無料のPaaSサービス | Act as Professional

    先日発売されたsymfonyの執筆に携わらせて頂いたので、今回はPHPのPaaSホスティングサービスである cloudControl で、無料で symfony1.4 を稼働させます。きっと、cakePHPやCodeigniterも稼働させることができるのではないでしょうか。 cloudControlって? 1時間あたり1BoxというcloudControlで定義している独自の単位は無料で使えます。簡単に言うと、少ないアクセスのサイトだったら無料で使えます。それ以上のアクセスを提供するためにはunlockの手続き(有料)が別途必要です。 また、無料で提供しているアドオンが利用できます。その中にはMySQLがあるので、PHPMySQLで稼働するフレームワークは大抵稼働するのではないでしょうか。 cloudControl で symfony1.4 を稼働させるところまで、解説することにしま

    PHPを使っているすべての人が知るべき無料のPaaSサービス | Act as Professional
    hilde
    hilde 2011/04/03