タグ

phpに関するhironobu-sのブックマーク (44)

  • GDB で php プロセスの覗き見 - hibomaの日記

    php を GDB でデバッグするのが便利。 以下のエントリで手法が説明されている qiita.com blog.anatoo.jp stackoverflow.com 以降、私が書くのはこれらのエントリに書かれている手順を真似たものなので、詳細を知るにあたっては是非リンク先も読んでほしい 検証: GDB で実行中の php プロセスを覗き見る GDB は実行中のプロセスを解析の対象とすることもできる。このエントリでは、無限ループするバグった php を GDB で覗いてみよう <?php function third($bar = "") { for (;;) { } } function second() { third(); } function first() { second(); } first(); 検証環境 CentOS7.4 (1708) php-5.4.16-42.el

    GDB で php プロセスの覗き見 - hibomaの日記
  • PHPのインターン化文字列とは何か - hnwの日記

    このエントリは闇PHP Advent Calendar 2015の3日目です。なぜか@do_akiさんによる4日目の記事「ZEND_TICKS と tick 関数」を読んだ後で書いています。 稿では、あまり日語での説明を見たことがないPHPのインターン化文字列(interned strings)について紹介します。 文字列のインターン化とは 文字列のインターン化というのは多くのプログラミング言語で採用されているテクニックで、同じ不変文字列がプログラム中に何度も登場するような場合に、毎回文字列をコピーするのではなく同じ文字列を共有することで実行時間やメモリ消費量などを有利にするようなものです。Wikipediaの「String interning」なども参照してください。 internというのは軍などで使われる単語で、抑留というのが日語で一番近い単語だと思いますが、どうもピンとこないの

    PHPのインターン化文字列とは何か - hnwの日記
  • PHPで学ぶVM型正規表現エンジンの仕組み

    PHPカンファレンス福岡での発表資料です。

    PHPで学ぶVM型正規表現エンジンの仕組み
  • PHP - 憂鬱な希望としての PSR-7 - Feelin' Kinda Strange

    tl;dr PSR-7は普段PHPにてHTTPメッセージを扱うインターフェイスとしてそこそこ十分に機能する。メインユースケースの8割は満たすだろうが、PHPのポテンシャルの5割にも満たないかもしれない。だがそれで良い。 「今年は PSR-7 が来る」 つい先日、PHP-FIGのHTTPメッセージ用インターフェイスに関するPSR(PHP Standard Recommendations)のステータスがレビュー段階に入った。 https://github.com/php-fig/fig-standards/blob/master/index.md そこでこのエントリではPSR-7のインターフェイスが実際のフレームワークとアプリケーション間での利用の際に上手く機能するかについて考察する。なお、OOPとしての正しさについては深く言及しない(ヘッダーについてのデメテルの法則や、イミュータブル性などだ

  • 関数名によく使われる英単語(動詞)の意味とニュアンス | PHP Archive

    PHP に限らず、プログラミングで使われる多くの関数名は「動詞+目的語」という命名規則になっていることが多く、「insertPost()」であれば投稿を挿入するという意味が名前から読み取れます。 では投稿を削除する場合は delete でしょうか? それとも remove でしょうか? 関数は基的に英語を使うのが鉄則ですが、似たような意味を持つ単語などが多く厳密な意味の違いがわかりにくいことがあります。 そこで、プログラミングで関数名として一般的に使われている頻出語句をピックアップし、主な用途と細かい意味、ニュアンス、使い分けについて調べてみました。 追加・作成 set

  • YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情

    YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情

    YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
  • Zephir使えばPHP Extensionが誰でも超絶簡単に作れる - Qiita

    はじめに ※ タイトルは、正確には、「Zephir使えばPHP Extensionが(PHPのコードさえかければ)誰でも超絶簡単に作れる」ですが、PHP Extensionを書きたい人はPHPのコードを書ける人だと思われますので、省略してます。 メモリ操作を気にせずにPHP Extensionを作れる言語”Zephir” こちらの記事を読んで面白そうだなと気になってストックだけして積んでた状態でした。 しかし、とある案件でファイルのフルスキャンをしたくなったのでPHP Extension化を試みました。 情報は公式の Zephir Language にもありますが、日語情報が少ないのでこちらに簡単にまとめます。 結論から箇条書きすると 面白い。 初めて触ったその日にメモリ管理に気を使う必要なく、PHP Extensionの開発が出来ました。 今回のケースでは、PHPでベタ書きした場合と比

    Zephir使えばPHP Extensionが誰でも超絶簡単に作れる - Qiita
    hironobu-s
    hironobu-s 2014/09/09
    あとで
  • 【PHP版】TwitterStreamingAPIをOAuth認証する方法 | 京都ライフ

    今回は久しぶりにプログラム系の話題をしたいと思います。 twitterのプロフィールでも「web屋」と書いているのに、企業系の話ばかりなので、これからは月1回程度は、システム系なお話もエントリーしてゆこうかなと考えています。 とはいえ、このサイトのテーマがブレブレなので、何のblogなのか分からなくなってきて、SEO的に失敗じゃないか?という声も聞かれますが、まぁ、そこはgoogle先生が判断してくれるのを期待しましょう。 というわけで、今回は「PHPからtwitterのStreamingAPIをOAuth認証で使うための方法」という内容でエントリーしたいと思いますが、書いているうちに非常に長いエントリーになってしまったので、各章ごとに分けてみました。 もう知っているという部分は読み飛ばしていただければと思います。 twitterAPIは現在「OAuth認証形式」になっている それでは早速

    【PHP版】TwitterStreamingAPIをOAuth認証する方法 | 京都ライフ
  • PHP: The Right Way

    ようこそ 時代遅れの情報がウェブ上にあふれている。そんな情報を見たPHP初心者は戸惑ってしまうだろう。そして、まずい手法やまずいコードが広まってしまう。 そんなのはもうやめよう。PHP: The Right Way は気軽に読めるクイックリファレンスだ。PHPの一般的なコーディング規約、 ウェブ上のよくできたチュートリアルへのリンク、そして現時点でのベストプラクティスだと執筆者が考えていることをまとめた。 大事なのは、 PHPを使うための正式なお作法など存在しない ってこと。 このサイトの狙いは、はじめて PHP を使うことになった開発者に、いろんなトピックを紹介すること。 経験豊富なプロの人にとっても、これまで深く考えることなく使ってきた内容について、新鮮な見方を伝えられるだろう。 このサイトは、決して「どのツールを使えばいいのか」を教えるものじゃない。 いくつかの選択肢を示して、それぞ

  • PHP と JavaScript の噺

    Capistrano の簡単な説明からredmine のデプロイまでの資料です。 サンプルのソースコードは、こちらです。 https://github.com/totty/redmine_deployer

    PHP と JavaScript の噺
  • 新言語Hackで最強PHPerになろう! - Qiita

    新言語 Hack とは こんにちは、新言語 Hack が Facebook より OSS としてリリースされましたね。 詳細は以下の通り。 https://code.facebook.com/posts/264544830379293/hack-a-new-programming-language-for-hhvm/ 新言語 Hack は HHVM 向けの開発言語で静的型付き言語の性質を取り入れ PHP での素早い開発を実施し、PHPとの互換性があります http://hacklang.org/ http://hhvm.com/ HHVM (HipHop Virtual Machine for PHP) とは、Facebook が OSS で開発している PHP 用の JIT コンパイラです。 HHVM は PHP のコードをダイナミックにバイナリコードへと変換することで高速実行の実現を目

    新言語Hackで最強PHPerになろう! - Qiita
  • PHPのセッションIDは暗号論的に弱い乱数生成器を使っており、セッションハイジャックの危険性がある : DSAS開発者の部屋

    下記の文章は、PHPのセッションIDに対する攻撃についてFull Disclosure MLに2010年に投稿された文章を和訳したものです。訳者の意見としては、攻撃の成立条件は極めて厳しく、そこまで深刻度は高くないと考えています。 とはいえ、疑似乱数列への攻撃がどのように行われるのか、その可能性を示す文章は比較的珍しいもののように思います。暗号論的に安全な疑似乱数とは何か、なぜ必要なのかといった内容を間接的に教えてくれる面白い文章だと感じましたので、今回翻訳してみました。 (以下、原文の和訳です) 原文:http://seclists.org/fulldisclosure/2010/Mar/519 Advisory (c) 2010 Andreas Bogk <andreas () andreas org> Product:PHP Version:5.3.2 以降 脆弱性の種類:暗号論的な

    PHPのセッションIDは暗号論的に弱い乱数生成器を使っており、セッションハイジャックの危険性がある : DSAS開発者の部屋
  • CakePHPで様々なオブジェクトへのアクセスの仕方 | X->A->O

    はじめに CakePHPで何らかのオブジェクトを操作する場合、対象となるオブジェクトの種類やどこからアクセスするかによって方法が異なる場合があり、それ以前にそもそもインスタンス化されていないことを知らずにアクセスしようと無謀な挑戦を試みたりすることがあります・・・よね?自分の経験上、始めたばかりの時はここで躓くことが結構多く、今でも分からずに調べることが多いですし、あまり使っていないと同じ事を何度も調べたりもしてしまいます。このエントリは、あるオブジェクト「に」あるオブジェクト「から」アクセスする方法について調べたものの備忘録です。 初心者のかたはどうぞ「 初心者の方へ 」にまず目を通してください。 内容は適宜追加・修正される可能性があります。 すべてCakePHP2系の情報です。1系の情報が今後追加されることはありません。 可能な限り公式ドキュメントへのリンクを張っています。日語訳のあ

  • PHP製のノンブロッキングサーバ·React MOONGIFT

    ReactPHP製のオープンソース・ソフトウェア(MIT License)です。 最近流行のnode。その特徴は何と言ってもノンブロッキングな仕組みにあります。しかしそのためにnodeを覚えるのはちょっと…と思う方はReactを使ってみましょう。PHPでノンブロッキングWebサーバを実現しています。 デモ。Hello World。 デモのコードです。PHPでWebサーバを立ててアクセスを処理しています。 別なデモ。変数は解放されず、アクセスの度にインクリメントしていきます。 そのコード。変数が徐々にあがっていくのが分かります。 ReactPHP自体がアプリケーションサーバになってリクエストを処理しています。特徴としてはノンブロッキング、イベント駆動型での処理になります。多数のコネクションを処理しなければならないといった時に使えるのではないでしょうか。 MOONGIFTはこう見る 慣れて

    PHP製のノンブロッキングサーバ·React MOONGIFT
  • EmacsでPHPを書くときのアウトラインモード設定 - ログ日記

    ;;; アウトラインモード(php) (add-hook 'php-mode-hook '(lambda () (setq outline-regexp "^<\\?\\|^class\\|^\\?>\\|^}\\|^ function\\|^/\\*\\*\\|^ /\\*\\*\\|^interface\\|^abstract\\\ |^ private\\|^ protected\\|^ public\\|^ static\\|^ abstract") (setq outline-level (function (lambda () (save-excursion (let ((str nil)) (looking-at outline-regexp) (setq str (buffer-substring-no-properties (match-beginning 0) (mat

    EmacsでPHPを書くときのアウトラインモード設定 - ログ日記
  • CucumberとJenkinsを使って、PHPなどで作られたリモートのWebアプリの受け入れテストを自動で行う - orangain flavor

    WordPressのようにPHPなどでできたWebサイトの振る舞いを自動でテストしたいと思い、仕組みを作ることにしました。 きっかけは、設定が間違ってて、トップページは正常に表示されているにも関わらず、個別のエントリページではエラーになってることがあったためです。 別にWordPressに限った話ではなく、Pythonとかで開発してても必要になる話なので、簡単なところから始めてみようというわけです。 なお、Rubyの世界をあまりわかってないので、Ruby周りの勉強を兼ねてます。間違っていたら教えてもらえるとありがたいです。 やりたいこと ページがアクセスできるかチェックしたい。 なるべくサーバーとか立てずに簡単にやりたい。 将来的にはちゃんとしたブラウザでの動作チェックに応用したい。 構成 今回の受け入れテストは、以下のライブラリを使って実現します。 Cucumber Capybara C

    CucumberとJenkinsを使って、PHPなどで作られたリモートのWebアプリの受け入れテストを自動で行う - orangain flavor
  • WEB MEMO: cakephp2.0でのテストについて

    前日は@takuo_doiさんの「SQLから考えるModel::findの使い方」でした。SQLは誰もが悩むところだと思いますので非常に参考になると思いました。 最終日になりましたが、私はテストについて書かせて頂きたいと思います。 cakephp2.0からテストがphpunitになりました。 phpunitマニュアル http://www.phpunit.de/manual/3.5/ja/index.html cakephpのテストの実行には2つ方法がありまして、 ブラウザからtest.phpにアクセスする。 cake testsutie コマンドから実行する。

  • 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のアンチパターンとベストプラクティス
  • 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のブログ
  • プログラミング言語の速度とアプリケーションの速度がいかに関係ないかがわかるグラフ - kなんとかの日記

    まずは次の表をご覧あれ。これはプログラミング言語のベンチマークとして有名な Computer Language Benchmarks Game のベンチマーク結果。上にいくほど高速で、下に行くほど遅い言語になる。 これを見れば、最速な言語は C/C++ であり、Java や Haskell や OCaml といった静的な言語は軒並み上位に登場する。これに対し、RubyPythonPHP といったスクリプトは全部下のほう (つまり遅い)。その速度差は非常に大きく、このベンチマークで見ると Python3 や Ruby1.9 は C/C++ の約50倍から60倍遅く、Perl は約90倍、PHP にいたっては約130倍遅いことになる。 (ちなみに JIT つきの Lua が驚異的に高速なのが目をひく。この結果が当だとしたら、言語の速度に大きく関係するのは動的か静的かではなく、どれ

    プログラミング言語の速度とアプリケーションの速度がいかに関係ないかがわかるグラフ - kなんとかの日記