タグ

PHPに関するkammのブックマーク (136)

  • 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(

    kamm
    kamm 2014/08/11
  • PHPでマルチスレッド(バックグラウンド処理)を実現する方法 - EC studio 技術ブログ

    PHPで長時間かかる重い処理を行うとき、 マルチスレッドで動かせたらなぁ!と思うことがよくあります。 マルチスレッド処理を行うことで、時間のかかる処理を 複数同時に並列実行でき、高速化することができます。 (特に通信処理などで遅延がある場合に有効です) PHPにはpcntl_forkというプロセスをフォーク(複製)することが できる関数がありますが、これはPHPCGIモードで 動かしている場合にのみ有効です。 通常はPHPをApacheモジュールとして動作させていることが 多いので、これが使えないケースが多々あります。 他には、system関数などでシステムコールを行い、 など & を使って実行するという方法もありますが、 これもphpCGI版として実行できなければいけません。 システムコールで呼ぶプログラムをPerlなどで 書けばいいのですが、できればPHPで全部統一したいものです。

  • ドワンゴ吉村総一郎氏「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」@デブサミ2014 2日目 - tchikuba's blog

    引き続きデブサミ2014。 ドワンゴ吉村総一郎氏によるセッション「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」を聞きました。 いろんなところで良く聞くPHPレガシーコードにどう立ち向かったのか聞いてみたかったです。 案の定というか、想像以上のPHPレガシーコードっぷりにちょっと感動すらしましたがw profile 株式会社ドワンゴ 吉村総一郎氏 ウォーターフォール開発とアジャイル開発の両方のマネージャー経験 スライド ニコニコ生放送を書き直す理由 コードの技術的負債がやばい PHPで書かれている: 300万行! facebookで1000万行と言われているそう 1万行のクラスや4000行のメソッド 循環的複雑度600超のメソッドががが あまりに複雑過ぎて龍の巣と言われている(笑) まさに壊れかけのジェンガのよう 企画やスケジュールを優

    ドワンゴ吉村総一郎氏「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」@デブサミ2014 2日目 - tchikuba's blog
  • PHPで==の代わりにstrcmp関数を使うことによる問題点 - hnwの日記

    補足(2010/12/01 03:00):floatからstringへのキャストで丸められる桁数についてですが、php.iniの設定値「precision」の影響を受けるようです。 僕は以前から「PHPの==はキモいから===を使おうよ」と言っているつもりです(参考:「PHPの==がキモい件」)。しかし、ネット上には==を使った比較での不慮の事故を防ぐ目的で、「安全な==」としてstrcmp関数を使って比較している人が居るようです。このやり方について問題点を指摘します。 strcmpで比較するというのはstring型にキャストをして比較するのと同じですから、キャストして何が起こるか熟知していないと比較結果は想像がつきません。僕は全ての型からstring型へのキャストで何が起こるかスラスラ言えるわけではありませんから、何でもstrcmpするのは==を使うのと同じように怖いと感じます。 今回、

    PHPで==の代わりにstrcmp関数を使うことによる問題点 - hnwの日記
    kamm
    kamm 2014/07/15
  • PHP界隈の胸が熱くなる話 - withgod's blog

    ふとTwitterを眺めてると もうちょい日PHP使ってる人krakjoeの話題に関心持ってもいいと思うんだけどな。彼php-dbgとかcoreで頑張ってるし、いちOSSの出来事としてひじょーに興味深いと思う— Shuhei Tanuma (@chobi_e) July 10, 2014 とか視界に飛び込んでくる。 karkjoeつーと確かAPCuとかpthreads書いた人だよなーって思いつつ何だろうと思ってTwitter見てみるとこんなのが A leg up, please .... Click to Donate: http://t.co/vT4MczCaAk #gofundme— Joe Watkins (@krakjoe) July 9, 2014 ん?って事でリンク先を拝見 http://www.gofundme.com/b9dfcg My name is Joe Watk

    PHP界隈の胸が熱くなる話 - withgod's blog
  • hhvmのExtension書いてみた | GREE Engineering

    みなさんこんにちは。hackしてますか? 今日はhhvmのC++拡張(Extension)について書いてみます。 前振り hhvmはfacebookが開発・公開しているPHPの処理系のうちの一つでC++で書かれており、linux上でのJITがサポートされており場合によってはとても高速にPHPアプリケーションを実行する事ができます。 勿論Native拡張を書くこともでき、既存のライブラリ資産の有効活用やどうしても速度が出ない部分の改善などが簡単に行えるので手段として知っていると便利です。 この記事をきっかけにhhvm Extensionのとっかかりになれば嬉しいです。 開発環境を作る 開発環境はlinuxの環境を整えましょう。 OSXやその他の環境でのビルドも対応しているのですがJIT未対応だったり予期せぬバグや地雷を踏む可能性が高いので積極的にOSXのバグフィックスを行ってフィードバックし

    hhvmのExtension書いてみた | GREE Engineering
    kamm
    kamm 2014/06/12
  • PHP: apc_define_constants - Manual

    Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Errors Exceptions Generators References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Context options and parameters Supported Protocols and Wrappers Security Introduction

    kamm
    kamm 2014/06/01
  • pharのしくみ - おぎろぐはてブロ

    PHP5から追加された機能として、SimpleXMLとかSPLなど、動作的にユーザレベルでは実現できないおもしろい動きをするものがあります。5.3から標準モジュールとなったpharも同じように結構見えないところでPHP体の動きを変えるような実装をしているので、調べてみました。 以下の部分に大きく分けています。 stream wrapperの定義 zend_compile_fileの差し替え ファイルアクセス系関数の差し替え パス解決の差し替え stream wrapperの定義 pharは、stream wrapperとして動くことで、"phar://path/to/foo.phar/bar.php" といったファイルにアクセスすることができます。 普段よく使う http://〜 、 https://〜 、ftp:// などと同様で、抽象化してアクセスできるようになるしくみです。 定義

    pharのしくみ - おぎろぐはてブロ
    kamm
    kamm 2014/05/17
  • AWS SDK for PHP 2 をインストールして AutoScaling の設定を行う

    PHP から AWS を操作するためのライブラリ「AWS SDK for PHP」の新バージョン「AWS SDK for PHP 2」を触ってみました。 AWS SDK for PHP 2 リリース直後は対応サービスが少なかったのですが、現在は主要なサービスは網羅しているようです。 AWS SDK for PHP 2 の主な特徴 https://github.com/aws/aws-sdk-php PHP5.3.3以降 PSR-0, PSR-1, PSR-2対応 Composer, PEAR でのインストール、phar ファイルの配布 Guzzleベース namespace, Iterators, Waiters, Enums, レスポンスモデル, 例外など、いまどきの実装に対応 AWS SDK for PHP 2 のインストール AWS SWK for PHP 2 は、phar ファイル

    kamm
    kamm 2014/05/17
    “phar ファイルが一番お手軽(ダウンロードするだけ)なのですが、ソースが読みづらいのと、APC が効かないという話もあるので、ここでは Composer でインストールします”
  • utBREW – PHARが無効な環境でSilexを使う

    PHP micro-framework Silex をPHARが使えない環境で使いたい場合は、silex.pharファイルをばらしてautoload.phpを読み込めばOK pharコマンドが使えるPCpharファイルをばらす $ phar extract -f silex.phar silex.pharの代わりにautoload.phpを読み込む(ばらしたファイルが/Silexにある) //require __DIR__.'/silex.phar'; require __DIR__.'/Silex/autoload.php';

    kamm
    kamm 2014/05/17
  • Devト〜ク AWS EC2 small instance にてxcache vs APC

    LinuxMacWindows、オープンソースなどの経験/習得/調査/学習したことを書いていくよ。たまに気になったニュースもね。 AWSのEC2 スモールインスタンスにてPHPを導入したときのこと。 リソースが少ないし、PHPはスクリプト言語なので、アクセラレーター導入により高速化を図ってみる。 AWSでS3を使用するので、AWS SDK for PHP 2.0 を使用する。 eAcceleratorでは、SDKが動作しないのであえなく断念。 ということで、xcacheとAPCで検証してみた。さらに、SDKの使い方として、pharとautoloadでの比較も考慮してみた。 計測のやり方は、ApacheBenchにて行うこととし、同接100、リクエスト数1000とする。(ab -n 1000 -c 100 http://localhost/bench.php) まずは、SDKのphar+

  • PHP最速フレームワークPhalconのインストール

    Framework / Memory Usage (mean, megabytes per request) [lessis better]Memory Usage(MB)ZendSymfonyYiiLaravelKohanaCodeIgniterFuelPhalcon0.40.81.21.62.0 参考 Phalcon PHPとSails Node.jsのベンチマーク Phalcon 1.3 と 2.0のベンチマーク Phalconモジュールのインストール ここではCentOS/Scientific Linuxでのインストール例を紹介しますが、マニュアルにはWindows/OSXなどのインストール手順も記載されています。PhalconはC言語で記載されているのでPHPがビルドできる環境でなければなりません。つまり、CentOSなどであればgccなどのビルドツール、php-develなどの

    PHP最速フレームワークPhalconのインストール
  • PHPでスクレイピング【Goutte vs. Simple HTML DOM Parser】 - Qiita

    PHPスクレイピングをしようと思って検索すると、Simple HTML DOM Parserというライブラリと、Goutteというライブラリが紹介されてあるようです。 昔から存在してPHPスクレイピングの定番になっているのが、Simple HTML DOM Parserらしく、紹介記事も多い。 Goutteは、パフォーマンスが良いらしいが、比較すると記事が少ない。 そこで、記事は、パフォーマンスバトルと実装方法についてまとめておきます。 「SayMove!のランキングページから、動画のタイトルを取得する」でベンチマーク対決していただきます 1, Simple HTML DOM Parserのベンチマーク 1-1, 導入 Simple HTML DOM Parserの公式サイトにアクセスして、ダウンロードして、作業ディレクトリにsimple_html_dom.phpを配置する。 1-2,

    PHPでスクレイピング【Goutte vs. Simple HTML DOM Parser】 - Qiita
    kamm
    kamm 2014/05/05
  • AmazonWebServiceのDynamoDBをPHPで利用する - WonderPlanet DEVELOPER BLOG

    こんにちわ。今回のブログ担当の中村です。 今回はPHPAWS(AmazonWebService)のDynamoDBを利用する手順を記載してみたいと思います。 DynamoDBは簡単に言うとNoSQLデータベースサービスの一種で、RDBMSとは違いリレーションやトランザクション機能がありませんが、その分高速でビッグデータを扱うのに向いていると言われています。 弊社ではRDBMSだけでなくDynamoDBも併用しています。 スマホアプリでは、アプリ側とサーバ側で通信を行う際、ジェイルブレイクなどによって通信内容を改ざんされてしまうリスクがありますが、DynamoDBを利用することで改ざんを一部防止することができます。 例)RPGゲームにおいて、ダンジョンを冒険して経験値やコインやアイテムを取得するような場合 サーバ側からダンジョンの情報をアプリ側に送信してダンジョンを冒険した後、サーバ側に

    AmazonWebServiceのDynamoDBをPHPで利用する - WonderPlanet DEVELOPER BLOG
  • 新プログラミング言語Hack本執筆しました - よねのはてな

    先日リリースされた新プログラミング言語のHackを執筆しました。 PHPのシステムをHHVM移行しましょう! Facebook発 新プログラミング言語「Hack」スタートアップガイド 作者: 米林正明出版社/メーカー: 技術評論社発売日: 2014/04/01メディア: Kindle版この商品を含むブログ (1件) を見る amazon http://www.amazon.co.jp/o/ASIN/B00JE4PMMO gihyo https://gihyo.jp/dp/ebook/2014/978-4-7741-6445-8 kobo http://bit.ly/1kqxVKZ 執筆中にHHVMのバージョンアップがあって当初の執筆内容で動作しなくなったり少々焦りましたが、リリースされて間もないプロダクトに関する有益な情報を執筆出来たと思います。 HackはHHVMで動作するプログラミン

    新プログラミング言語Hack本執筆しました - よねのはてな
  • HHVM Hackをすぐに試す方法(AWS AMI公開しました) - Qiita

    nginx, apache2, hhvm fastcgiの設定をしたAMIをAWSで公開しました。 AWS management consoleにログインして以下のリンクで公開AMIをLaunchしてください。 HHVM Hackで遊ぶ apacheかnginxを起動させてからhhvmを起動してAWSの公開されているURLにアクセスしてみてください。 画面にHipHopと表示されれば、/var/www/index.phpがHHVMで正常に動作しています。 起動方法 nginx fastcgi hhvm

    HHVM Hackをすぐに試す方法(AWS AMI公開しました) - Qiita
    kamm
    kamm 2014/04/02
  • morris.jsとPHPでグラフを簡単に表示する方法 | SONICMOOV LAB

    こんにちは、ムックです。 今回は、php、morris.jsを使ってSQLの結果を簡単にグラフ表示してみたいと思います。 背景:統計データをグラフに表示したい とあるソーシャルゲームの統計データをグラフ表示させたい。 例えば、各ガチャ回転数 実装方法 具体的な実装方法は以下の3つになります。 1.SQLの作成 2.結果をJSONに変換 3.morris.jsを使って任意のグラフを作成 1.SQLの作成 今回は単純に以下の様なログテーブルがあるとします。 [sourcecode lang="sql"] mysql&gt; show create table log_gacha\G *************************** 1. row *************************** Table: log_gacha Create Table: CREATE TABLE

    morris.jsとPHPでグラフを簡単に表示する方法 | SONICMOOV LAB
  • 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
  • 2012年のPHP周辺の話題振り返り - Engine Yard Blog JP | Engine Yard Blog JP

    2012年もとうとう終わりますね。スッキリとした気持ちで2013年を迎える為に、この1年のPHPに関する出来事をまとめてみることにします。なお今回の記事の内容は下北沢オープンソースカフェで隔週火曜日に開催しているShimokita.phpの生放送で話した内容から抜粋している形です。ゆるいフンイキではありますが動画でご覧になる方は下記をどうぞ。 http://www.youtube.com/watch?v=iGQCILzVKlw PHP体について 2012年はPHP体の開発は非常に活発でした。ほぼ毎月リリースが行われており、PHP5.3は5.3.10から5.3.20まで、PHP5.4は5.4.0から5.4.10までバージョンが進んでいます。(年表にまとめたページはこちら)この中には重要なセキュリティの修正も含まれておりPHPを利用中のユーザは最新のPHPが推奨されています。またPHP5.

  • » PHPでmemcachedのconsistent hashingを実現する手間を惜しまず

    あ、どうも、マタノ兄弟商会のマタノです。 PHPでmemcachedのconsistent hashingを実現する方法をば。 というか、PHPの拡張モジュール「Memcached」を使えば、簡単に実現可能なのですが、その導入手順についてもう少し詳しく書いてみます。 以下、必要ライブラリ等のインストール手順です。 (実施環境はCentOS5.2 x86_64、memcached自体はすでにインストール済みという前提で) ■libketamaのインストール consistent hashingのアルゴリズム用ライブラリです。 『libketama – a consistent hashing algo for memcache clients』 ◆SVNリポジトリから、最新リビジョンをチェックアウト svn://svn.audioscrobbler.net/misc/ketama/ READ

    kamm
    kamm 2013/03/26
    『PECL memcachedのインストール』←あとで調べた所、PECL memcacheでもmemcache.hash_strategy="consistent"とすることでconsistent hashingが実現できるようだ。これが一番環境構築が手軽。