タグ

PHPに関するrysterのブックマーク (556)

  • PHPでネイティブ関数を含むコードのテスタビリティを上げるもう1つの方法 - Do You PHP はてブロ

    via. PHPでネイティブ関数を含むコードのテスタビリティを上げる2つの方法 - 絶品ゆどうふのタレ こういう"PHPでどこまでできるか"ネタっていいですね。 また、PHP 5.4で盛り上がってるご時世にPHP 5.3な話をしちゃってて相変わらず空気読めてないけどそこはスルーで。 すみません。まだPHP5.2系です。。。 PECL:runkitを使う なんでもありなrunkitに既存関数をオーバーライド(というか、関数の再定義)する関数があります。 PHP: runkit_function_redefine - Manual ただし、ユーザー定義関数以外を再定義する場合、php.iniの設定に runkit.internal_override=1を追加する必要があります。 で、次のような感じでテストを書くことができます。今回使用したのは、PHP5.2.17+runkit1.0.0-dev

    PHPでネイティブ関数を含むコードのテスタビリティを上げるもう1つの方法 - Do You PHP はてブロ
    ryster
    ryster 2011/08/10
  • PHPでネイティブ関数を含むコードのテスタビリティを上げる2つの方法 - 絶品ゆどうふのタレ

    PHPでテストケースを作成する場合、ネイティブ関数を使っているようなコードに対してテストを実行しようとすると、どうしても環境に依存したり、実リソースにアクセスする必要が出てしまうことがあります。 この記事では、そのような問題に対する対処法を提示します。 経緯みたいなもの 先日もWeb APIをコールするPHPライブラリを書いていたのですが、HTTPをたたく部分のテストを切り離せず、もやもやしていました。 ちょっと前にPerlのTest::Timeというライブラリを教わって感動していたのですが、PHPでもネイティブ関数をオーバーライドできたらどんなにすばらしいだろう、などとぼやいていたのです。 そんなときに、@takimoにPHP 5.3ならオーバーライドできるよねって言われて、ハッと思い立ってテストに組み込む方法を考えてみたところ、割とスマートに実現できそうな方法が見つかったので、方法論の

    PHPでネイティブ関数を含むコードのテスタビリティを上げる2つの方法 - 絶品ゆどうふのタレ
    ryster
    ryster 2011/08/09
  • よくあるニーズを疎結合に。内部や外部の画像をリサイズや切り抜き、簡易加工を行うPHPスクリプト·TimThumb MOONGIFT

    TimThumbは内部または外部の画像を取り込んでリサイズ、切り抜き、簡易加工を行うPHPスクリプト。 TimThumbはPHP製のオープンソース・ソフトウェア。Webサイトを作る際に重要な要素が画像だ。テキストが並んでいるだけでは重苦しいが、画像をうまくちりばめることで華やかに、見栄えのいいサイトに仕上がる。ユーザに画像をアップロードしてもらうサイトも多い。 リサイズ ユーザがアップロードしたり、外部にある画像を使う場合サイズがばらばらであったりして扱いが悪い。そんな画像を加工するのに使えるのがTimThumbだ。 TimThumbはPHPで画像のパスを指定してリサイズしたり、簡単な加工を行うソフトウェアだ。パスを指定することも、URLを指定することもできる。GDライブラリを使っているのでPHP側を対応させる必要がある。単純なリサイズだけでなく位置を指定した切り抜きもできる。 切り抜き

  • PHP 5.4.0 Alpha3 でこういうコードが書けるようになる - なんたらノート第三期ベータ

    何も言いません、これ見て驚いたらいいですよ。PHP5.4.0 Aplpha3 で実際に実行できたプログラムです。もう大興奮ですよ。 Pythonだともっといろいろ書けるよ、とか、Rubyはmixin最初からあるよとか、その変数スコープJSだと当たり前すぎるとか、そういうツッコミはノーサンキューで、PHPでこれが動くということが重要なんですってば。

    PHP 5.4.0 Alpha3 でこういうコードが書けるようになる - なんたらノート第三期ベータ
    ryster
    ryster 2011/08/06
  • php 5.4 リポジトリに舞い戻ってきたクロージャの $this サポート - do_aki's log

    php 5.3 beta の時は使えていたのに、stable リリース時には消えていた クロージャ( 無名関数 ) の $this サポート。 これが、php 5.4 のブランチで再びコミットされ、 php5.4 alpha1 で利用可能になっている。 とはいえ、ただそのまま移植されたわけではなく、新たな構文や、新たなメソッドを引き連れてきたらしい。 そこで、php5.4 alpha2 時点で使えるようになっているクロージャの機能をざっとまとめてみることにした。 $this サポート これは、php5.3 beta にもあったように、クラス内で定義したクロージャの内部で $this が使えるようになるというもの。 $this は暗黙的に束縛されるので、特別なことは何もしなくて良い。 php 5.4 で利用可能な $this <?php class C { private $x = 'hel

    php 5.4 リポジトリに舞い戻ってきたクロージャの $this サポート - do_aki's log
    ryster
    ryster 2011/08/03
  • Google スプレッドシート: ログイン

    Google スプレッドシートには、個人の Google アカウントまたは Google Workspace アカウント(ビジネス ユーザー向け)でアクセスできます。

  • 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
    ryster
    ryster 2011/07/29
  • Redisを使った開発のお供に。RedisをCRUD操作する管理UI·phpRedisAdmin MOONGIFT

    phpRedisAdminはNoSQLのRedisをWebベースで管理するためのソフトウェア。 phpRedisAdminはPHP製のオープンソース・ソフトウェア。PHPで有名なソフトウェアを挙げるとしたらその一つに選ばれると思われるのがphpMyAdminだろう。PHP+MySQLというLAMP構成の二つを有名にした一端をphpMyAdminが握っていると言っても良いほどだ。 メイン画面 そんな訳でphp○○Adminとつくソフトウェアは多数存在する。何かを管理するPHPスクリプトはphp○○Adminという名称にしなければならないと思ってしまうほどだ。Redisを管理するならばそう、phpRedisAdminだ。 phpRedisAdminはNoSQLとして有名なRedisを管理、編集するためのソフトウェアだ。実際に利用する際にはPHP用のRedis機能拡張をインストールする必要がある

  • PHP: ビルトインウェブサーバー - Manual

    警告 このウェブサーバーは、アプリケーション開発の支援用として設計されたものです。 テスト用に使ったり、制約のある環境でアプリケーションをデモするために使ったりすることもできるでしょう。 あらゆる機能を兼ね備えたウェブサーバーを目指したものではないので、 公開ネットワーク上で使ってはいけません。 CLI SAPI にはウェブサーバーの機能が組み込まれています。 このウェブサーバーは単一のシングルスレッドプロセスしか実行しないので、 リクエストがブロックされると、PHP アプリケーションはストールします。 URI リクエストの処理は、PHP を開始した時点の作業ディレクトリから行われます。 -t オプションを使えば、ドキュメントルートを明示的に指定することができます。 URI リクエストにファイルが含まれない場合は、指定したディレクトリにある index.php あるいは index.htm

    PHP: ビルトインウェブサーバー - Manual
    ryster
    ryster 2011/07/28
  • はてなブログ | 無料ブログを作成しよう

    セメントドリンク、ブラウン管、吊るされた収納、OMORIカフェ、くり抜き、どや顔の初音ミク パチミラ福岡に出演する縁で博多に行きました。 楽しかったのでその時の写真をアップロードします。 博多駅のハートポスト 手描きのグリッチ カニの丸揚げ(おいしかった) フレッシュセメント という名前の飲み物(おいしかった)ごま+バナナスムージーっぽかった? 泡系…

    はてなブログ | 無料ブログを作成しよう
    ryster
    ryster 2011/07/25
  • PHP5.4のリポジトリに新たに[]による配列の文法が追加 - id:anatooのブログ

    今までPHPでは配列を書くのにarray()という記法を使う必要があったが、PHP5.4のリポジトリに新しい配列の文法が追加された。[]で囲むことで配列を表現することができるようになっている。連想配列についても同様。 add short array syntax as defined in https://wiki.php.net/rfc/shortsyntaxforarrays, 2nd solution using => only http://svn.php.net/viewvc?view=revision&revision=313641 以下、配列の新しい文法に関するテストケースを引用。 --TEST-- Testing array shortcut and bracket operator --FILE-- <?php $a = [1, 2, 3, 4, 5]; print_r(

    ryster
    ryster 2011/07/25
  • FizzBuzzではじめるテスト - 第1回関西PHP勉強会

    7/22に大阪市内で第1回関西PHP勉強会を開催しました。 4月にPHPカンファレンス関西を開催して以来、3ヶ月ぶりにPHPの勉強会を開催しました。 参加頂いたみなさんありがとうございました。また発表を快く引き受けていただいた皆さん、当にありがとうございました。 イベント名に「第1回」と付けたのは、今後も継続して開催していきたいという気持ちの表れです。PHPを軸に色々なテーマで開催していきたいと思うので今後もよろしくお願いします。 スイーツタイム 勉強会をやるときは、休憩時間にみんなでべるおやつを用意するのですが、今回は @msng さんに色とりどりのマカロンを用意してもらいました。見た目も鮮やかですし、適度な甘さで好評でしたね。(たしかに美味しかったです!) 昨今「スイーツタイム」が話題になっていますが、会場で飲が可能なら実施することに賛成です。 単純に勉強会で発表を聞くだけでも疲

    ryster
    ryster 2011/07/25
  • Introduction to Continuous Testing

    This presentation describes introduction to Continuous Testing for PHP.Read less

    Introduction to Continuous Testing
    ryster
    ryster 2011/07/24
  • PHPのmysqli_stmtでfetchAllっぽいものを実現する方法 : akiyan.com

    PHPmysqli_stmtでfetchAllっぽいものを実現する方法 2011-07-22 mysqli_stmt::bind_resultの実装になじみが無く苦しんでいるphpユーザーの皆さんこんにちは。 いやー、面倒ですよね、bind_result。変数、どんだけ並ばすのかと。 できれば使いたくないですが、やんごとなき理由でmysqliを使い続けなければならないときに、さくっと連想配列で全ての結果を取得する方法を探したところ、StackOverflowの「How can I put the results of a MySQLi prepared statement into an associative array?(訳:どうやったらMysqliのプリペアドステートメントで連想配列で結果を受け取れるの?)」たどり着きました。 こちらの回答をまるっと使わせてもらって作った関数が以下

    ryster
    ryster 2011/07/23
  • PHP の cURL 実際にリクエストされたヘッダを確認する方法

    PHPcURL 実際にリクエストされたヘッダを確認する方法 2009-02-16-1: [PHP] PHPcURL 拡張モジュールを利用しているときに、デバック用に実際にリクエストしているヘッダの内容を見たいときがあります。 その場合は、以下のように CURLOPT_VERBOSE と CURLOPT_STDERR を使って、ファイルに出力することが出来ます。 // 保存するファイル $fp = fopen('/tmp/curl.log', 'a'); // 詳細な情報を出力する curl_setopt($ch, CURLOPT_VERBOSE, true); // STDERR の代わりにエラーを出力するファイルポインタ curl_setopt($ch, CURLOPT_STDERR, $fp); 例として、Google へのアクセスを見てみます。 $ch = curl_in

    ryster
    ryster 2011/07/20
  • PHPのコマンド実行関数の違い、比較してみよう - それマグで!

    unlink で数GBのファイル消していると遅い php のプロセス実行コマンドでバックグラウンド実行しよう。 とおもった。見渡せばプロセス実行関数は、たくさんあった。どれを使うべき?比較してみよう コマンド実行系コマンド shell_exec コマンド実行する。出力はStringへ。 `` 演算子と同じ。shell 経由でコマンド実行 sytem コマンド実行する。出力はStringへ。ステータスコードはArrayへ exec コマンドを実行する。出力はStringへ。ステータスコードなどはArrayへ proc_open STDIN/STDOUT を指定する。 passthru exec と同じ。出力が直接ブラウザへ行く。バイナリやストリーム返したいときに使う pcntl_exec posix の process control で exec する。左の意味が分かる人だけ お馴染みのバ

    PHPのコマンド実行関数の違い、比較してみよう - それマグで!
    ryster
    ryster 2011/07/20
  • PHP5.4のtraitを使ったシングルトンパターン実装によるtrait入門 - id:anatooのブログ

    PHP5.4 alpha1がリリースされた。このリリースでは、PHPのオブジェクト指向言語の新たな機能としてtraitと呼ばれる機能が追加された。PHP5.4におけるtraitとは、型に影響を与えずにクラスに適用できるメソッドとプロパティの集合である。 早速PHP5.4 alpha1をインストールし、traitを使ってシングルトンパターンを実装した。このコードでは、クラスの継承関係に影響を与えずにシングルトンパターンをモジュール化している。 <?php trait Singleton { protected function __construct() { } static function getInstance() { static $obj = null; return $obj ?: $obj = new static; } function __clone() { throw n

    PHP5.4のtraitを使ったシングルトンパターン実装によるtrait入門 - id:anatooのブログ
    ryster
    ryster 2011/07/18
  • dfltweb1.onamae.com – このドメインはお名前.comで取得されています。

    このドメインは お名前.com から取得されました。 お名前.com は GMOインターネットグループ(株) が運営する国内シェアNo.1のドメイン登録サービスです。 ※表示価格は、全て税込です。 ※サービス品質維持のため、一時的に対象となる料金へ一定割合の「サービス維持調整費」を加算させていただきます。

  • PHPの開発時になかなか使えるauto_prepend_file設定

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

    PHPの開発時になかなか使えるauto_prepend_file設定
    ryster
    ryster 2011/07/07
  • PHP5.4とScalaのトレイト比較 - なんたらノート第三期ベータ

    PHP5.4にはトレイトという文法が導入されて、多重継承の便利さが享受できるようになるそうです。 いろいろ試してみることにしました。 トレイトといえば代表選手はScalaですね。Scalaでいうトレイトは、インターフェースの定義とメソッドの実装を同時にやってくれる便利な概念でした。単一継承のOOP言語では「〜は〜の一種」という制約が強すぎて、「ペンギンは鳥の飛行メソッドによって飛行できてしまう」という問題があります。でもちゃんと「ペンギンは飛べないが泳げる鳥」を綺麗に解決する必要はあって、その解答として、トレイトのあるScalaではこんな解が導けます。 abstract class Animal abstract class Bird extends Animal { def hasBeak = true // 鳥にはかならずクチバシがある def hasWings = true // 翼

    PHP5.4とScalaのトレイト比較 - なんたらノート第三期ベータ
    ryster
    ryster 2011/07/05