タグ

PHPに関するdeeekiのブックマーク (357)

  • 最近お気に入りのPHPライブラリ開発手法 - 肉とビールとパンケーキ by @sotarok

    PEAR2/Pyrus ってどうなったんだっけ? という話はとりあえず一旦置いておいて、最近わりかしカジュアルにPHPライブラリを開発して配布する方法がなんとなく自分の中で定着してきたので超ざっくりまとめておく。 ソースコードはGitHub、開発にはgitflow、配布はOpenpear Openpear で世界征服の話はどうなったんだ、というのは置いておいて、ざっくり、上記の通り、 ソースコードのホスティングは GitHubで 例: https://github.com/sotarok/git-daily 配布は Openpear で 例: http://openpear.org/package/Git_Daily 開発用ツールとしては、gitflow を使う というのが一番楽だと思っている。 ソースコードはGitHub Openpear はとっても便利なサービスで、SVNでのホスティン

    最近お気に入りのPHPライブラリ開発手法 - 肉とビールとパンケーキ by @sotarok
    deeeki
    deeeki 2011/08/17
  • PHP のテストを Ruby で書く « blog.udzura.jp

    皆さん、楽しくテスト書いてますか~~~ 今日は、 rack-legacy を使うことで、 PHP のアプリケーションなのになぜか Ruby のコードでテストできて(受け入れテストのあたりですけど)、そうすると物の RSpec とかが使えて楽ですよ、と言う話をします。 rack-legacy とは。 まず、 Rack とは、 Ruby 製のウェブアプリケーション(Ruby on Rails、Sinatraなどをご存知かもしれません)とサーバ(Apache/Passenger、NginX、Lighttpdなどなど…)をつなぐ一種の規格です。 PerlPython にも似たような仕組みがあります。 ここで、 Rack::Legacy というミドルウェアを使うと、他の言語の CGI や、 PHP のアプリケーションが Rack の上で動かせます。 そして、 Rack の上で動くということは

  • チューニンガソンで優勝してきました : DSAS開発者の部屋

    7/9(土)にチューニンガソン というイベントに参加して優勝してきたので、その報告と、何を考えてどんなチューニングをしたのかを 記憶の範囲で公開したいと思います。 今回のチューニンガソンのお題は、WordPress(ja) + php + Apache + MySQL で、 ab を使って wp-comment.php 経由でコメントのポストをすることで計測が行われました。 MySQLとApacheを立ち上げたらWordPressが動く環境が渡され、そのWordPress自体は設定ファイルを含めて 改造が一切禁止、WordPressの実行をショートカットするチートも禁止です。 0. 試合前日 環境がAWSとAMI Linuxということは事前に公開されていたため、前日にAWSに登録して少しだけAMI Linuxを 触ってみました。yumベースだけどCentOSと違って結構新しいバージョンが用

    チューニンガソンで優勝してきました : DSAS開発者の部屋
  • PHPの開発時になかなか使えるauto_prepend_file設定

    こんにちは、中川です。 PHPの開発を行っていると、自分の開発用だけの便利関数や、一時的な設定・各種パラメータの変更を行いたいなどあると思います。 そんな時に、実際のプロジェクトファイルに追加してしまうと、 番環境に誤ってそのままコミットしてしまったり、他の開発者にはゴミ扱いされたりとなかなか大変ではないでしょうか。 そんな時に便利な auto_prepend_file という設定をご紹介したいと思います。 PHPにはメインファイルの前に、自動的に付加するファイル名を指定する、 auto_prepend_fileという設定があります。 これを使えば、プロジェクト内のファイルには一切手を加えなくても、PHPで前処理を行うことができます。 ※なお、プログラムの後処理を加えたい場合は、auto_append_file という設定もあります。 設定自体は非常に簡単で、apacheのconfigフ

    PHPの開発時になかなか使えるauto_prepend_file設定
  • WebデザイナーやノンプログラマーにおすすめしたいPHPの勉強法

    まったくプログラムの下地がない人がPHPの入門書を読むと挫折する。筆者はプログラミングの下地がまったくないノンプログラマーである。数年前から、PHPの勉強をや独学ではじめた。PHPは何冊買ったかわからない(洋書も含めて40冊以上は買ってきた)。買っては挫折の繰り返しだった。現在、てもとに残ったのは数冊である。 以下は、今後PHPを完全な独学で勉強したい人のためのメモである。 良でプログラミングの下地をつくる 最初のコツはいきなりPHPに手を出さないことである。とくに初心者の方がネックになるのは条件分岐、ループ、配列あたりである。このあたりはPHP以外ので定評のあるを読んで基礎を固めておきたい。 『新版Perl言語プログラミングレッスン入門編』か『初めてのプログラミング 第2版』のどちらかを読んでおこう。前者はPerl、後者はRubyであるがPHPでも基礎は同じで役に立つ。

    WebデザイナーやノンプログラマーにおすすめしたいPHPの勉強法
    deeeki
    deeeki 2011/06/27
  • #php_tdd_ci に参加して知った仮実装の付加価値と、例外処理のプラクティス | 48JIGEN *Reloaded*

    #php_tdd_ci に参加して知った仮実装の付加価値と、例外処理のプラクティス 2011/06/21 今週末にべる地元札幌、大心のラーメンが楽しみで楽しみで震える@remoreです。 ※文と写真は関係ありません 昨日GREEのセミナールームで行われた「PHPでTDD&CIワークショップ」に参加させて頂いて、当に光栄にも@t_wadaのFizzBuzzを書くデモのペアプロパートナーをやらせて頂きました。帰宅したけどまだ手を洗えない状態です。※握手はしていません ※オーラか何かがまだ残ってる さて、会場でRedbullをうっかり2も飲んだせいで色々と学びの多かった勉強会だったので興奮が覚めず寝れそうにないので、今日学んだことを書き残しておきます。内容はいまTDDを勉強している人向け。 テストコードをテストできる。仮実装の付加価値 仮実装ってご存知でしょうか。こんな感じのコードの事で

    #php_tdd_ci に参加して知った仮実装の付加価値と、例外処理のプラクティス | 48JIGEN *Reloaded*
    deeeki
    deeeki 2011/06/23
  • PHPでTDD&CIワークショップ、Jenkins + PHP の各種プラグインパート資料 - Yamashiro0217の日記

    はじめに この資料は「PHPでTDD&CIワークショップ」 http://atnd.org/events/16626 で @yamashiro が発表するための資料だよ。 ワークショップ参加者じゃなくても記事読むだけで完結するようには書いてあるよ。 概要としては、Jenkins を使って PHP のウンコレガシーなコードをいかに綺麗にして行くかということを説明する。 自画自賛だけど PHPMD とか PHPCPD の使い方の説明の資料としてもそこそこイケてる資料になってると思いました。まる。 この記事に書かれてることは、割とTemplate for Jenkins Jobs for PHP Projectsとかぶってるけど、プラグインを絞ってあるのと、一個一個のプラグインについて解説、また実際にエラーが起きたときにどうすればいいのか書くよ。 Java と Jenkins のインストールとJ

    PHPでTDD&CIワークショップ、Jenkins + PHP の各種プラグインパート資料 - Yamashiro0217の日記
    deeeki
    deeeki 2011/06/20
  • コードカバレッジ測定ツール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

  • #feature

    JavaScript is disabled on your browser. Please enable JavaScript to use correctly mesosadmin frontend Please login Login Password Forgot your personal password ? We can remind you

    deeeki
    deeeki 2011/06/16
    PHP上位互換用
  • 【PHP】Qdmail使用時はis_qmailに気をつけよう with CakePHP : ちょびろぐ

    Webシステムを構築していくとぶち当たるのがメール周りの問題。 特に日語メールはかなりの鬼門で、文字化け、ヘッダー問題などで 苦しむ人が多いと思います。 そんな人達のために開発されたのが、 PHP高機能日語メール送信ライブラリ・文字化けフリー - Qdmail - PHP::Mail Library , Quick and Detailed for Multibyte PHPでメール周りを検索した人ならまず間違いなくこのあたりに 辿りついていると思います。 私も非常にお世話になり、前々からずっと使っておりました。 しかし、悲しきかな「誰でも簡単に日語メール送信が使える」ことに特化してしまった 落とし穴というか、汎用さを求めた結果の弊害をお伝えしたいと思います。 実は全く関係ないと思っていたメール周りを改善したら処理が5倍ほど (当社比) 速くなったので、その原因と対策をメモとして残し

    【PHP】Qdmail使用時はis_qmailに気をつけよう with CakePHP : ちょびろぐ
  • PHPの基本、phpinfo()の見方

    PHPerにはお馴染みの関数、phpinfo()の見方です。 PHPには多数の設定項目があり、それらを一覧する機能としてphpinfo()があります。 設定項目の他にインストールされている拡張機能や実行環境の情報が確認できるので、おそらく多くのPHPerが活用していると思います。 これからPHPを学ぶ人ならおさえておきたいphpinfo()の見方をまとめてみました。 1. phpinfo()の実行 まずは基礎の基礎、phpinfo()の実行です。 phpinfo()自体はただの関数ですので、PHPソースに記載するだけで良いです。 以下のソースをinfo.phpというファイルで保存します。 <?php phpinfo(); ブラウザでこのファイルにアクセスすればphpinfoが表示されます。 1-1. ファイル名は? Webでのサンプルなどを見るとphpinfo.phpというファイル名にして

    deeeki
    deeeki 2011/05/31
  • PHPとJavaScriptでHTTPストリーミングする話(Transfer-Encoding: chunked編) - id:anatooのブログ

    HTTPレスポンスをajaxでストリーミング的に受け取りたいとき、要するにHTTPストリーミングをしたい時には、Transfer-Encoding: chunkedなレスポンスを生成してやるとよい。こうするとAjaxではHTTPレスポンス全体を受け取るのを待たずに、レスポンスの中身にアクセスすることが出来るようになる。従って、一つのHTTPコネクションでサーバ側から任意のデータを好きなタイミングでプッシュすることが出来る。 コード 一秒ごとに生成されるJSONをストリーム的に受け取るデモのコードが以下。 <?php // push.php function output_chunk($chunk) { echo sprintf("%x\r\n", strlen($chunk)); echo $chunk . "\r\n"; } header("Content-type: applicati

    PHPとJavaScriptでHTTPストリーミングする話(Transfer-Encoding: chunked編) - id:anatooのブログ
    deeeki
    deeeki 2011/05/31
  • 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を使うためのガイドをするサイトも用意しています。以下はその補足です。

    deeeki
    deeeki 2011/05/28
  • phpspec

    { "require-dev": { "phpspec/phpspec": "^6.2" }, "config": { "bin-dir": "bin" }, "autoload": {"psr-0": {"": "src"}} } Follow the instructions on this page to install composer: https://getcomposer.org/download/. Install phpspec with composer:

  • ソーシャルアプリのプロトタイプ制作にMongoDBを活用

    ソーシャルアプリのプロトタイプ制作にMongoDBを活用 1. ソーシャルアプリのプロトタイプ制作にMongoDBを活用~PHP+Sleepy.Mongooseでお手軽永続化~Fungoing LLC / Satoshi MiyauchiTwitter : @bibrost 2. Profile 宮内 聖 / Satoshi Miyauchi @bibrost 自宅警備員(週休2日) 兼 Fungoing LLC 代表 兼 株式会社監査と分析 システム開発担当 兼 株式会社ニジボックス 傭兵 … etc Webデザイン、映像編集、Webサービスの開発など・・・いろいろ 引きこもりフリーランス生活。と思ったら最近はたまに出勤。 Scala、MongoDB、Solrをメインにやってます ※お仕事、協業のご相談は随時受付中 Page : 1 3. Recent Works ( with Mong

    ソーシャルアプリのプロトタイプ制作にMongoDBを活用
  • Git で日々の共同作業やリリース作業をサポートする git-daily を作りました | GREE Engineering

    こんにちは。インフラの sotarok です。 先日から Git 関連の話をしている通りですが、社内で Git を使い始めています。 今日は、Git を使った日々の開発〜リリースまでのフローや、そうしたものの運用と、それをサポートするために作ったツール git-daily の紹介をしたいと思います。 ソフトウェア開発とウェブ開発の違い いやウェブ開発も広義のソフトウェア開発なのですが、ここでいうソフトウェア開発とは、クライアントアプリケーションやライブラリのようなものを指すと思ってください。 実際、ウェブ開発をしている方は感じていることだとは思いますが、両者の開発フローはかなり異なるものです。もちろん社風や開発の方針等によって色々あるとは思いますが、主に次のような特徴が挙げられると思います: ソフトウェア開発 アプリケーションはクライアントで動作する リリース間隔は比較的長く、次のバージョ

    Git で日々の共同作業やリリース作業をサポートする git-daily を作りました | GREE Engineering
    deeeki
    deeeki 2011/05/12
  • Nginx + PHP-FPM + symfony – オレオレPHP環境 - BLABBER

    前までPHPの環境といえば、Apache + mod_phpだったわけですが、Apacheとかどデカいwebサーバーってはたして必要なの?ってことで、最近だとwebサーバーだけならNginxだけでいいのではという結論に達しまして。Nginxはリバプロとして使われている企業が多いと聞きますが、PHPの場合、PHP5.3からPHP-FPMがデフォルトで取り込まれたってことで、Nginx(webサーバー) + PHP-FPM(FastCGI)構成に移行してしまいました。 その時のメモです。尚、環境はCentOSです。 configure (Nginx) $ ./configure \ --prefix=/usr/local/nginx \ --with-http_ssl_module \ ... SSLはこのオプション指定しないと入らない --without-mail_pop3_module \

  • PHP 標準コーディング規約 | アイビースター

    PHPでプログラムを作っていくと 「変数名はどうしよう?」 などと、たいしたことではないのに凄く悩むときがあります。 PearとZend Frameworkには標準コーティング規約というものがあります。プログラムを書く上でのルール決めです。いずれも内容的には一致しているところも多く大変勉強になります。 ただ、かなり細かく書いてあるので全てを網羅するには結構大変です。下記にそれぞれのコーティング規約を1つにまとめてみました。 ファイル 一行の長さは80文字以内とする。最高でも120文字いないとする 改行はラインフィード( LF )を使用する ファイル名は英数字、アンダーバー( _ )、ダッシュ( – )以外は使用しない インデント インデントはタブを使用しないで半角空白4文字とする 制御構造 if, for, while, switch等で制御キーワード(if等)と括弧の間は1文字開ける i

    deeeki
    deeeki 2011/05/10
  • DotCloud で PHP アプリを設置してみたときの色々 - 肉とビールとパンケーキ by @sotarok

    beta の invite もらったので DotCloud で遊んでみました。 dotCloud - One home for all your apps アプリ1つくらい設置してみないとなんだかよくわからないよねってことで、とりあえずどこで公開するかなーと思っていた、paste アプリ を設置してみた。 Pastit: http://www.pastit.dotcloud.com/ Pastit GitHub: https://github.com/sotarok/pastit/ DotCloud の PHP の環境は、Ubuntu 上の nginx + php5-fpm (PHP 5.3.2) が標準で、なんというか時代の流れを感じました。いいね! のは、まあいいとして、まぁ PHP アプリなんてものはたいてい Apache で動くことが前提とされてるもので (そうなのか? いや、そう

    DotCloud で PHP アプリを設置してみたときの色々 - 肉とビールとパンケーキ by @sotarok
    deeeki
    deeeki 2011/05/08
  • PHPUnitのアンチパターンとベストプラクティス

    みなさんこんにちは。@ryuzeeです。 SlideShareを徘徊していたらPHPUnitのアンチパターン・ベストプラクティスに関する素晴らしいスライドを見つけたので内容を抜粋で紹介します。 1. テストの中で何もテストしていない class FooTest extends PHPUnit_Framework_TestCase { public function testSomething() { $foo = new Foo; $foo->doSomething(new Bar); } } こういうテスト。どこにもアサーションがなくて何もチェックしていません。 $foo->doSomethingの戻り値を検証しないならなんの意味もありません。 純粋にTDDをしていれば、テストコード作成→テスト実行でRed→プロダクションコード作成→テスト実行でGreenなのでこういうテストは登場しませ

    PHPUnitのアンチパターンとベストプラクティス