タグ

PHPに関するblythegirlsのブックマーク (109)

  • PHPにおけるタイプヒンティングでのClosureとcallableの違い

    by @dekokun on 2014/07/25 00:26 Tagged as: PHP, タイプヒンティング. 概要 Closureとcallable、どちらも無名関数に使えるタイプヒンティングなのですが、callableは無名関数以外でも関数名とかでもいけるけどClosureはそういうのいけないよという話。 @do_aki氏に感謝 詳細 PHPのタイプヒンティングで。 — でこくん (@dekokun) 2014, 7月 22 @dekokun 5.5 あたりから、Closure ベースで良いよって事になってたはず。 — どぅーあき (@do_aki) 2014, 7月 22 @dekokun http://t.co/mZdkKiY3EH — どぅーあき (@do_aki) 2014, 7月 22 @dekokun うんにゃ。 callable だと、文字列(関数名)や array

    PHPにおけるタイプヒンティングでのClosureとcallableの違い
  • HerokuがPHPサポート発表、FacebookのHipHop VM採用で高パフォーマンスを実現

    Herokuは今回のPHPのサポートを「new PHP on Heroku」と表現しています。それは単にPHPをサポートしたのではなく、Facebookがオープンソースで開発している高速なPHPのランタイムであるHipHop VM(HHVM)を利用可能にしているためです。 At the foundation of the new PHP is Facebook’s HipHop VM, a modern, high-performance runtime for PHP that promises orders of magnitude speed improvements while retaining compatibility. With help from the Facebook team, this VM is now available as part of the Hero

    HerokuがPHPサポート発表、FacebookのHipHop VM採用で高パフォーマンスを実現
  • 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
  • PHPカンファレンス2013でZend OPcacheについて発表しました - hnwの日記

    9月14日に開催されたPHPカンファレンス2013で発表してきました。以下が発表資料です。 マニアックな内容なのと、裏に面白そうな発表があったのでガラガラかと予想していたのですが、思った以上に盛況で驚きました。僕個人が伝えたかった内容は「PHPコア見るの楽しい」「Zend OPcacheは仕事上も趣味上も要注目」ということでした。どれくらいの人に伝わったかは不安ですが、この発表を機に興味をもってもらえれば嬉しく思います。 今回は廣川さんとテーマがかぶってしまって驚いたのですが、うっかりお昼ご飯に行っていて僕自身は廣川さんの発表を見られませんでした。プレゼン資料が公開されると嬉しいのですが…。 また、anatooさんやYahoo!の蒋さんもPHPの内部まで踏み込んだ発表をされていました。こうした発表を聞いて、「PHPのソースコードまで読んでみようかな」という人が少しでも増えてくれたらいいなと

    PHPカンファレンス2013でZend OPcacheについて発表しました - hnwの日記
  • 第70回PHP勉強会で浮動小数点数の話をしました - hnwの日記

    7月22日に開催された第70回PHP勉強会で発表してきました。以下が発表資料です。 浮動小数点数周りのトピックを3点紹介する内容でしたが、思ったより反応が良かったように思います。 ただ、面白おかしく話そうとして、聞いている方々に無駄に恐怖を与えてしまったかもしれません。冷静に読み返していただければ、怖いように見える内容もレアケースの話題が多いことがわかるかと思います。 また、PDOの挙動については誤解を与えてしまったかと思いますので、プレゼン資料の25ページ目を大幅に差し替えてアップロードしました。 この点についてもう少し説明します。PDOでプリペアードクエリを利用する際、プレースホルダに値を埋め込むのにPDOStatement::bindValueメソッドを利用することができます。この際、bindValueメソッドの第3引数で利用でPDO::PARAM_INT定数を指定しても、第2引数の

    第70回PHP勉強会で浮動小数点数の話をしました - hnwの日記
  • PHP extensionとZend extensionの違い - hnwの日記

    PHPのextensionにはPHP extensionとZend extensionという2種類があります。これらの違いが何なのか、PHPの実装レベルから調べてみました。 PHPのextensionについて PHPのextensionには2種類が存在します。これらは次のようにphp.iniでロード指定する構文が異なります。 extension=extension.so zend_extension=/path/to/extension.so 稿では「extension=」でロードされるものをPHP extension、「zend_extension=」でロードされるものをZend extensionと呼びます。これらはPHPのソースコード中ではそれぞれmoduleとextensionと呼ばれているので注意してください。 代表的なZend extensionとしてはXdebugとZend

    PHP extensionとZend extensionの違い - hnwの日記
  • PHPで仮想マシンベースの正規表現エンジンを作ってみる 第一回

    こんにちは、久保田です。 皆さん正規表現は使っていますか? PHPに限らずどんな言語を使っていても、正規表現にお世話になっていないプログラマはいないと思います。しかし、その正規表現がどのように実装されているかについては知らない方が多いのではないのでしょうか。 この記事では、その正規表現エンジンの実装方法の一つである仮想マシンによる正規表現エンジンの実装方法を解説しつつ実際に簡単な正規表現エンジンを作っていきたいと思います。 正規表現エンジンの実装方法 正規表現エンジンの実装方法はいくつかあるのですが、それの一つに仮想マシンによって正規表現のマッチング処理を実行するやり方があります。PHPで利用している正規表現エンジンであるPCREはこの方式を採用しています。 仮想マシンによる実装方法は、正規表現というよりもプログラミング言語の実装方法の一つとして知られています。Rubyの最もメジャーな実装

    PHPで仮想マシンベースの正規表現エンジンを作ってみる 第一回
  • PHP 5.5.0 リリース | スラド デベロッパー

    PHP開発チームは20日、「PHP 5.5.0」の公式リリースをアナウンスした(アナウンス、SourceForge.JPの記事、@ITの記事)。 PHP 5.5.0はPHP 5.4から1年3カ月ぶりのメジャーアップデートであり、イテレータを簡単に実装できるジェネレータや、例外処理でfinallyブロックが使えるようになったほか、新しいパスワードハッシュAPIといった新機能の導入が行われている。その一方、Windows版ではついにWindows XP/2003のサポートが終了となった。詳細については「PHP 5.4.x から PHP 5.5.x への移行」ページを参照されたし。

  • GitHub - akanehara/ginq: `LINQ to Object` inspired DSL for PHP

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - akanehara/ginq: `LINQ to Object` inspired DSL for PHP
  • PHPのベストプラクティス"The Right Way"の資料 #phpstudy - Engine Yard Blog JP | Engine Yard Blog JP

    昨日の第67回 PHP勉強会でPHPのベストプラクティスとして公開されているPHP: The Right Wayについて発表を行いました。発表はあくまで全体を眺めるという感じで細かい所までは言及できていませんので少しここで補足をしておきます。 基のコーディングは大事 基として提示されているPHPのコーディングはとても参考になります。発表でも触れましたが比較演算子や条件分岐、日付処理の扱いなどを見るだけで書き手のPHPのレベルは丸わかりと言ってもいいかもしれません。いくつか抜粋してみます。 曖昧な比較を用いた失敗 strposは検索文字列を発見できないとFALSEを返します。この場合先頭に対象文字列があるので0が返りますが、厳密な比較を用いていないが為に意図した動きになりません。 無駄なelse このelseは意味がありません。無駄にインデントが深くなっているだけですね。 DateTim

  • feof関数でwhileループを回す奴はド素人 - hnwの日記

    (2013-04-07 01:30追記)補足のコードに恥ずかしい間違いがあったのを修正しました。@nonakapさん、id:s-tomoさん、ご指摘ありがとうございます。 (2013-04-07 10:00追記)「補足その2」を書き足しました。 (2017-04-23追記)論旨がわかりにくい部分があったので、整理しました stackoverflowの記事「“while( !feof( file ) )” is always wrong」をざっくり翻訳してみます。これはWilliam Pursellさんによる自作自演スレ(回答者も人)で、Cでwhile( !feof( file ) )というループを作るのが悪い理由を説明するものです。 ちなみにPHPについてもほぼ同じことが言えますので、PHPプログラマの方にも一読をお勧めします(PHPの主要なファイル操作関数はCとほぼ同じインターフェース

    feof関数でwhileループを回す奴はド素人 - hnwの日記
  • PHPから見たPostgreSQLの数値データ型(数値リテラル) | Let's POSTGRES

    smallintはint2、integerはint4 およびint、bigintはint8と同意です。またsequenceを使うという機能を除けば、serialはintegerと、bigserialはbigintと同様の動きをします。これらは小数点以下のない「整数値」です。 serial、bigserialの値のフォーマット・範囲のチェックなどはinteger、bigintと同じですので、以下はそれぞれに読み替えてください。 64bitシステムでの整数値のチェック smallintとinteger まず、値が負でない(すなわちマイナス記号がつかない)ことを必須にしてしまってよければ、smallintやintegerのチェックは簡単です。 if(!ctype_digit($_REQUEST['num']) || $_REQUEST['num'] > 32767) { // NG処理 } これ

  • http://kwatch.houkagoteatime.net/blog/2012/12/25/php-generator-4/

  • PHP: The Right Way

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

  • セキュリティ情報:PHP5.4.8、PHP5.3.18以前にhashdos脆弱性

    チェック用スクリプト hashdosの状態を確認するためのスクリプトを作成してみましたので、Webサイトのチェックにご活用下さい。 このスクリプトを任意のファイル名(PHPスクリプトとして実行できる拡張子)でチェック対象Webサーバーに保存して下さい。Webブラウザを用いて、このスクリプトを実行すると、結果が表示されます。JavaScriptを有効にして下さい。チェック終了後はスクリプトを削除して下さい。 <?php if (@$_GET['mode'] === 'check') { header('Content-Type: text/plain'); echo (int)count($_POST); exit; } $max_input_vars = ini_get('max_input_vars'); $postnumber = (int)$max_input_vars + 10;

    セキュリティ情報:PHP5.4.8、PHP5.3.18以前にhashdos脆弱性
  • mbstring.encoding_translation有効時にhashDoS脆弱性 - Opensource days

    すでに徳丸氏がTwitterでコメントされていますが、PHPの過去のバージョン全てにおいてmbstring.encoding_translationをOn(有効)にした際にmax_input_varsによる制約が無効になってしまうという問題がありました。max_input_varsはユーザ入力変数の最大数を指定するパラメータであり、hashDoS対策として導入されたものです。この結果として、mbstring.encoding_translation=Onの設定でhashDoS脆弱性が存在していました。 mbstring.encoding_translationはmbstringの機能で、ユーザー入力パラメータの文字エンコーディングを自動的に内部文字エンコーディングに変換する用途で使用されています。 昨日公開された最新のバージョン(PHP 5.4.9またはPHP 5.3.19)ではこの問題が

    mbstring.encoding_translation有効時にhashDoS脆弱性 - Opensource days
  • PHP+Kestrel+Supervisorでお手軽タスクキューイング

    こんにちは、久保田です。 ウェブサービスでは、ユーザのアクションに従ってバッチ処理を行わなければならないケースがままあります。この記事では、バッチ処理の手法の一つであるタスクキューイングをPHPとKestrelとSupervisorを利用して行うやり方の導入を紹介します。 なぜなにタスクキューイング ウェブサービスでは、ユーザのアクションに従って非同期にバッチ処理を行うようなケースがよくあります。 例えばflickrのような写真を共有するウェブサービスで言えば、ユーザが写真をアップロードしたあとに非同期でその画像の複数のサムネイル生成や加工をしなければならないケースがあります。 よく見られるのは、DBにバッチ処理のためのタスクデータを入れておいて、後でcronで定期的に起動するワーカープロセスからバッチ処理を行う方法です。このやり方には、ワーカーを複数プロセスで扱いづらい、処理がリアルタイ

    PHP+Kestrel+Supervisorでお手軽タスクキューイング
  • PHP Coding Standards Fixer

    PHP Coding Standards Fixer¶ The PHP Coding Standards Fixer (PHP CS Fixer) tool fixes your code to follow standards; whether you want to follow PHP coding standards as defined in the PSR-1, PSR-2, etc., or other community driven ones like the Symfony one. You can also define your (team’s) style through configuration. It can modernize your code (like converting the pow function to the ** operator on

  • PHP Error | error reporting for PHP

    Focused crawls are collections of frequently-updated webcrawl data from narrow (as opposed to broad or wide) web crawls, often focused on a single domain or subdomain.

  • Windows Azure Webサイトでphp.iniを変更する方法 | Windows Maniax