タグ

PHPとphpに関するs_moriのブックマーク (418)

  • XdebugとVimを使ったPHPのリモートデバッグ - 株式会社インターエデュ・ドットコム

    インターエデュでウェブエンジニアをやっている野澤です。今日はXdebugを使ったリモートデバッグについて簡単にまとめたいと思います。 普段私はあまりデバッガを使った開発はせず、ほとんどprintデバッグが中心で、ブラウザにプログラムの内容を表示させたり、エラーログを確認しながら開発しています。自分たちが開発したプログラムであれば、どこがどういう仕組になっているかはある程度把握しているので、それで十分ではあるのですが、wordpressなどのオープンソースを使った開発になると、内部でどのような処理が行われているかを確認する必要が出てきます。しかしオブジェクト間の依存関係や、階層が深くなってくるとどうしてもprintデバッグだけでは時間がかかってしまいます。 そこでPHPのデバッガであるXdebugの登場です。 XdebugはPHPの拡張モジュールであるPECLパッケージの一つとして提供されて

    XdebugとVimを使ったPHPのリモートデバッグ - 株式会社インターエデュ・ドットコム
    s_mori
    s_mori 2014/10/19
  • PHPTAL

    PHPTAL PHP Template Attribute Language PHPTALのドキュメントを日語訳しました。 現時点では勝手翻訳なので、この翻訳に関するご意見はtetsuya@wardish.jpまでお願いします。 目次 イントロダクション なぜPHPTALを使うのか インストール 最初の例 Template Attribute Language 1. 属性の優先度 2. TAL namespace 2.1. tal:define 2.2. tal:condition 2.3. tal:repeat 2.4. tal:omit-tag 2.5. tal:replace 2.6. tal:content 2.7. tal:attributes 2.8. tal:on-error 3. METAL namespace 3.1. metal:define-macro 3.2. m

    s_mori
    s_mori 2014/08/17
    PHP Template Attribute Language
  • PHPソースをコーディング規約に合わせて修正してくれるPHP Coding Standard Fixer

    PHPソースをコーディング規約に合わせて修正してくれるツール「PHP Coding Standard Fixer」を試してみました。 PHPでコーディング規約チェックツールとしては PHP_CodeSniffer が有名です。PHP_CodeSniffer はソースをチェックして、問題点を指摘してくれるのですが、ソースの修正は自分で行う必要があります。 PHP Coding Standard Fixerは、コーディング規約チェックだけではなく、規約に従っていないソースを修正してくれるツールです。 PHP Coding Standard Fixerを使う インストール インストールは簡単で、githubで公開されている php-cs-fixer.phar ファイル をダウンロードしてくるだけです。 実行する ダウンロードしたphp-cs-fixer.pharファイルをphpコマンドで実行しま

    s_mori
    s_mori 2014/08/10
  • PSR-0はなぜ0(≒最重要)なのか

    Symfony勉強会で酔った勢いでPSRのステマをLT枠でしてきたのですが、参加者の半数以上がPSRを知っているというSymfony勉強会のレベルの高さに完全にやる気を失い、気のない話しかできなかったことをまずはお詫び申し上げます。 アレだとちょっと何が言いたかったのか意味不明ですので、改めて解説したいと思います。スライドはもう上げなくていいか。。 PSRとは PSRとはPHP-FIGっていう、色々なフレームワーク原作者同士の集まりみたいなところで策定されている「コーディング規約」です。標準だの何だの書いてありますが、要はコーディング規約ですよ。 ずっと公式サイトが無くてググラビリティが低いなクソッと思っていたら、いつの間にか公式サイトができていたようです。これで安心して「PSR公式サイトはここだよ!」と案内できますね PHP-FIG レベル分けがあって、今はPSR-0, PSR-1, P

    PSR-0はなぜ0(≒最重要)なのか
    s_mori
    s_mori 2014/08/10
  • PHPCrossRef

    Natalya sends Boris a spike! The PHP cross references officially came online in January of 2006, under the PHPXref.com domain. They were moved on August of 2010 to the PHPCrossRef.com domain, their present home. November 2004, Gina’s house, the beginnings of PHPXref. pentpro, the grey computer in the rack, was our web server running Debian Woody (Compaq Deskpro 6200: Pentium Pro 200MHz, 128MB ram,

    s_mori
    s_mori 2014/07/14
  • #9 phpのsession storeをredisにする - rrreeeyyy.com

    こんにちわ。れいです。 今日はphpsession storeをredisにしてみようと思います。 負荷分散するときに、セッション、どうしてますか? keepalivedやapacheのmod_proxy_balancerを使ってバランシングする時に、 バックエンドのAPサーバでセッションを管理していると、困りますよね。 従来は、DBやnfsやmemcachedやrepcachedに入れる方法が主流でしたね。 でも、ちょっと遅かったり再起動をしたら消えてしまったり負荷が心配だったり… といくつか問題があったようにも思います。 そこで、最近流行りのKVSにphpのセッションを入れて 管理する方法を紹介します。 今回使うのはRedisです。 色んなKVSの中でかなり早い部類に入るのと、 レプリケーションを組むのが非常に簡単であること、 あと僕が使ったことがあるKVSがMongoDBとRedi

  • 第五回闇PHP勉強会でzvalをダイエットする試みについて発表しました - hnwの日記

    3月15日に開催された第五回闇PHP勉強会で発表してきました。以下が発表資料です。 僕の発表では、PHPの変数1個に対応する構造体zvalが64bit環境では24byteになるけれども、これを16byteにしたらPHPの高速化・省メモリ化ができるんじゃないか、という試みを紹介しました。実験自体は失敗だったんですが、64bit環境だとzvalに意外と無駄があるということ、またzvalの構造変更が十分現実的だったということは面白い指摘かなと思っています。 少し内容について補足しておきます。僕としては、こういうトリッキーな実装をするなら劇的に速くなる必要があると考えています。NaN boxingにしても速度やメモリ消費量でのメリットが僅かであれば採用されないようなテクニックではないでしょうか。実験の結果を見る限り、今回の方針のままではこれ以上チューニングしても劇的な改善とはならないでしょうから、

    第五回闇PHP勉強会でzvalをダイエットする試みについて発表しました - hnwの日記
    s_mori
    s_mori 2014/03/16
    NaN boxing
  • PHPカンファレンス関西2014

    PHP カンファレンス関西 2014 2014年6月28日(土) 10:00〜17:00 大阪産業創造館 参加費: 無料 テーマは「うまれかわる PHPPHP歴史と最新の情報を交えながら、 参加者全員で今後の方向性を考えましょう。 お知らせ 2014年6月30日 - 【御礼】PHPカンファレンス関西2014 ご参加ありがとうございました 2014年6月27日 - 明日はPHPカンファレンス関西2014! 2014年6月27日 - リレーブログまとめ 2014年6月26日 - ライトニングトーク(LT)発表者公開 2014年6月23日 - ブース出展 2014年6月14日 - LT(ライトニングトーク)の発表者を募集を終了しました 2014年6月9日 - スタッフリレーブログを開始しました! 2014年6月2日 - 参加者登録開始です 2014年6月1日 - スポンサー(企業・個人)

    PHPカンファレンス関西2014
    s_mori
    s_mori 2014/03/03
  • CentOSにPHP5.5をインストール - Qiita

    remi(Les RPM de Remi - Repository)のrpmパッケージを使います。 http://rpms.famillecollet.com/ remiはrpmの依存関係の問題が少ない印象であり、個人的にオススメなリポジトリです。 まずepelのリポジトリを追加します。次は64ビット用のパスです。32ビット版はx86_64をi386に変更してください。 $ sudo rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm を取得中 警告: /var/tmp/rpm-tmp.x9joay: ヘッダ V3 RSA/SHA2

    CentOSにPHP5.5をインストール - Qiita
    s_mori
    s_mori 2014/02/11
  • PHP-Spider

  • すぐれた PHP ライブラリとリソース

    すぐれた PHP ライブラリとリソース Awesome PHP の記事をフォークして翻訳したものです (2013年4月25日)。おどろくほどすごい PHP ライブラリ、リソースやちょっとした情報のリストです。 【訳者コメント】 PHP 入門者のかたにはクィックリファレンスとして PHP: The Right Way 、セキュリティに関しては2011年3月に出版された 体系的に学ぶ 安全なWebアプリケーションの作り方 をおすすめします。 Composer Composer/Packagist - パッケージと依存マネージャー Composer Installers - マルチフレームワーク Composer ライブラリインストーラー。 Composer 関連 Satis - スタティック Composer リポジトリジェネレーター。 Composition - 実行時における Compos

    すぐれた PHP ライブラリとリソース
    s_mori
    s_mori 2013/12/27
  • 2013年PHPの話題を一挙に振り返るまとめ | Engine Yard Blog JP

    2013年も当にあとわずかになりました。 日は今年話題になったPHPについての記事を公式のリリースやはてなブックマークから抽出してきた内容を元に今年を振り返ってみましょう。PHPにとって今年はどのような一年だったのでしょうか。 参考: 2012年のPHP周辺の話題振り返り | Engine Yard Blog JP PHPのバージョン 2013年中にリリースされたPHPのバージョンは5.3、5.4、5.5の3系統で合計29のリリースが行われました。リリースサイクルはほぼ毎月という形でした。またPHPの公式サイトがレスポンシブ対応の新しいデザインに切り替わりました。詳細は下記の通りです。 Version 5.4.11 2013/1/17 Version 5.3.21 2013/1/17 Version 5.4.12 2013/2/21 Version 5.3.22 2013/2/21

    2013年PHPの話題を一挙に振り返るまとめ | Engine Yard Blog JP
    s_mori
    s_mori 2013/12/26
  • PHP 開発でも Grunt を使う - ngyukiの日記

    PHP Advent Calendar 2013 in Adventar の3日目です。 前日は @matsubo さんの コピペで出来るComposer導入 でした。Composer、私も使ってます。 Grunt とは Node.js で作られた色々な作業を自動化するためのツールです。 普通は Node.js での開発や js とかのフロントエンド開発に使われますが、PHP での開発でもわりと便利です。 PHP のための Grunt プラグインも色々あるので、とりあえず次の2つだけ使ってみます。 grunt-phpunit grunt-php 前提 php や node や npm はあらかじめインストールしておいてください。 ソースとテストの準備 とりあえず phpunit が実行できるソースツリーを用意します。phpunit は今風に composer でインストールします。 $ f

  • PHP はいつもわたしに新鮮な驚きを与えてくれる - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    ことの始まり PHP の srand 関数について調べていて、ひょんな拍子にsrandのseedに文字列(numericである必要はあるけど)を渡せることを知った。 では、ここに long を超えるものを放り込むとどうなるのか。 では結果をごらんください。 「!?!?」 なぜこうなるのか 秘密は PHP 処理系の zend_parse_arg_impl 関数にあります。 zend_parse_arg_impl はphpの関数に渡された引数をパースする部分で、longを要求する関数にstringな値が渡された時の処理はこの部分ですね。 https://github.com/php/php-src/blob/master/Zend/zend_API.c#L335 さて、読み進めていくと「ん!?!?」ってなる行があるはずです。 この行ですね https://github.com/php/php-

    PHP はいつもわたしに新鮮な驚きを与えてくれる - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
    s_mori
    s_mori 2013/12/11
  • PHPのカレンダー | Advent Calendar 2013 - Qiita

    About reserved postingIf you register a secret article by the day before the same day, it will be automatically published around 7:00 on the same day. About posting periodOnly articles submitted after November 1 of the year can be registered. (Secret articles can be registered anytime articles are posted.)

    PHPのカレンダー | Advent Calendar 2013 - Qiita
    s_mori
    s_mori 2013/12/07
  • DBに変更があった場合にキャッシュのクリアが必要な件について | 日記の間 | あかつきのお宿

    Cakephpを使っている人からすれば、何を当たり前のことを……と思うかもしれないのですが、僕はその当たり前のことを当たり前のように知りませんでした。しかし当たり前ですがその事実を声を大にして叫んだところで周りの人からイタい視線を浴びせられるだけなので、ここにそれを記しておきたい所存にございます。 事の発端 「テスト環境はDBを書き換えた後、何もしなくても今まで通りデータの取得ができるのに、何で番環境は変更を加えた後、一回キャッシュを削除しないとデータを取ってきてくれなくなるんだろう」 Cakephpを使って開発をしていて、ずーーーっと思っていた疑問なんですけどね。 よくやらかしてたのが、テスト環境から番環境にアップロードした際、なぜか急に画面が出なくなってテンパるっていう事態。全然原因が分からなくて、まだCakephpを使い始めだった頃はもっかいバックアップを上げ直して、それからテス

    DBに変更があった場合にキャッシュのクリアが必要な件について | 日記の間 | あかつきのお宿
  • NEON sandbox

    This is neon file - try to edit it! name: Homer # this is a comment address: street: 742 Evergreen Terrace city: Springfield country: USA phones: { home: 555-6528, work: 555-7334 } children: - Bart - Lisa - Maggie entity: Column(type=int, nulls=yes) string: 'quotes string' multi line string: ''' one line second line third line ''' special types: escape sequences: "\u2026 \t \n \r \f \b" bool: [tru

    s_mori
    s_mori 2013/11/14
    NEON parser for PHP
  • 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
  • PHPのジェネレータはイテレータより速い - hnwの日記

    先日の記事「PHPのジェネレータの実装を調べてみた」で僕は次のように書きました。 GeneratorクラスはIteratorインターフェースを実装しており、対応するPHPメソッドを持っています。また、Cで実装した場合のみ指定できるイテレータ関数も実装しています。このように両方が指定されている場合、foreachループではCの関数が呼ばれ、イテレータメソッドを明示的に指定した場合はPHPメソッドの方が呼ばれます。 ところで、イテレータに対応するPHPメソッドとC関数となぜ2つとも実装する必要があるのでしょうか。実は、PHPメソッドの方だけ実装すれば正常に動作します。C関数を実装する理由は速度面のメリットからだというのが僕の理解です。C関数は関数ポインタで単に呼び出せるのに対し、PHPメソッドの呼び出しは命令実行器の状態保存・復元の必要があるなど、呼び出しのコストがやや高いのです。 PHPのジ

    PHPのジェネレータはイテレータより速い - hnwの日記
    s_mori
    s_mori 2013/11/04
    ベンチマーク
  • PHPのPDOで、実行前、または実行後のSQL文を取得することは可能でしょうか?…

    PHPのPDOで、実行前、または実行後のSQL文を取得することは可能でしょうか? <?php //接続 $dbh = new PDO("mysql:host=localhost;dbname=database;","foobar","20111111"); //SQL準備 $sth = $dbh->prepare("select * from hoge where id=?"); $sth->bindParam(1, 12345, PDO::PARAM_INT); //-------------------------- // ここのあたりで取得したい //-------------------------- //実行 $sth->execute(); //-------------------------- // もしくはここ //-------------------------- ?

    s_mori
    s_mori 2013/11/03
    PDO