タグ

phpに関するshusatooのブックマーク (30)

  • 「PHP 7」登場。10年ぶりのメジャーバージョンアップで実行速度はPHP 5の2倍以上に、PHPの生みの親が語る。PHPカンファレンス2015(前編)

    PHP 7」登場。10年ぶりのメジャーバージョンアップで実行速度はPHP 5の2倍以上に、PHPの生みの親が語る。PHPカンファレンス2015(前編) WordpressやFacebookなど、Webのさまざまなサービスで使われているPHP言語。約10年ぶりのメジャーバージョンアップとなる「PHP 7」がもうすぐ登場予定です。 PHP 7では互換性を維持しつつ、従来のPHP 5と比べて2倍以上の性能向上やメモリ使用量を低減するなど、大きな改善が実現されます。 そのPHPの生みの親であるRasmus Lerdorf氏が来日し、10月3日に都内で行われた「PHPカンファレンス2015」の基調講演「SPEEDING UP THE WEB WITH PHP 7」においてPHP7の新機能や性能について詳しく解説しました。 その内容をダイジェストで紹介しましょう。 SPEEDING UP THE W

    「PHP 7」登場。10年ぶりのメジャーバージョンアップで実行速度はPHP 5の2倍以上に、PHPの生みの親が語る。PHPカンファレンス2015(前編)
  • やはりあなた方のDependency Injectionはまちがっている。 — A Day in Serenity (Reloaded) — PHP, FuelPHP, Linux or something

    今日はPHP界隈で大人気のDependency Injectionと、それに関連する用語について整理しておこうと思います。 以下のような状況があるのではないか?と思ったからです。 多くのPHPユーザがDependency Injection(DI)をよくわかっていない、あるいは正確に説明できません。 そして、デザインパターンである「DIパターン」とDIをサポートするツールである「DIコンテナ」を混同しています。 また、「DIパターン」と「サービスロケータパターン」をうまく区別できていません。 Dependency Injectionとは何か? Dependency Injectionとは「Dependency」を「Injection」するというデザインパターンです。 日語では何故か「依存性の注入」と訳されており、これが混乱の元ではないかと思います。 日語で「依存性」と言うと、「依存性は

    shusatoo
    shusatoo 2015/09/02
    簡潔にまとまっていて大変分かりやすかったです。
  • 「レイヤードアーキテクチャを意識したPHPアプリケーションの構築」を発表しました

    2015/06/27 に開催された PHPカンファレンス福岡2015 にて、「レイヤードアーキテクチャを意識したPHPアプリケーションの構築」という発表をしてきました。 MVC フレームワーク(CakePHP / Laravel)で構築したアプリケーションをレイヤードを意識して改善したという内容です。参加いただいた皆さんの顔ぶれを見ると歴戦の勇者みたいな方ばかりでしたが、和やかな雰囲気でセッションを進めることができました。ご参加ありがとうございました。 発表資料 発表資料は以下です。 MVC にサービスレイヤを追加して、それぞれの役割を意識して作る。レイヤ間の依存を明確にする。サービス(ドメイン)を中心に考える。よく言われていることなのですが、実際に実践する中で、ハマりがちなことや実際に実践してきた中で感じたことを紹介しました。もちろん、これで ok ということはないので、今後取り組んでい

  • Javaで書かれたPHP処理系のJPHPが高速だった - hnwの日記

    JPHPというJavaで書かれたPHP処理系があります。これは2013年10月にはじまった新しいプロジェクトで、大半をメイン開発者一人で開発しているようですが、既に一定以上の完成度です。また、内部的にはPHPファイルを解釈して直接Javaバイトコードにコンパイルしており、かなり高速なPHP処理系になっています。 他のPHP処理系と異なり、既存のPHPコードをWebサーバ上で動かすことを重視していないようにも見えますが、興味深いプロジェクトですので紹介します。 JPHPを動かしてみる さっそくJPHPを試してみましょう。現時点ではGitHubからソースコードを持ってきてビルドする必要があります。JDK7以上が必要ですので注意してください。JPHPのドキュメント「Getting Started」の通り、次のようにしてJPHPがビルドできます。 $ git clone https://githu

    Javaで書かれたPHP処理系のJPHPが高速だった - hnwの日記
    shusatoo
    shusatoo 2015/01/17
  • PHPの脆弱性への攻撃名称と対策メモ - Qiita

    自分用メモ。ごちゃごちゃすると忘れるので、なるべくシンプルにまとめたい。 誤り、不備などあれば、随時追加修正します(ご指摘ありがとうございます)。 クロスサイトスクリプティング(cross site scripting、XSS) 概要 訪問者に目的のサイトとは別の罠サイトを踏ませて不正な処理を実行させる行為。 原因 フォームから受け取った値を、エスケープせずに画面に出力するために発生 (偽のフォームを作成する手法も有るので、JavaScriptの対策だけでは不足) HTMLの実体参照を用い、& を &amp; に、< を &lt; に、> を &gt; に、" を &quot; に、それぞれ置換する。 PHPではhtmlspecialchars関数を用いれば、一括で対策できる (ただしENT_QUOTESを設定しないとシングルクォーテーションはエスケープされない)

    PHPの脆弱性への攻撃名称と対策メモ - Qiita
    shusatoo
    shusatoo 2015/01/08
    これは良記事。/
  • PHP処理系の未来 | gihyo.jp

    PHPユーザーの皆様、あけましておめでとうございます。稿ではPHPとHHVMの2つのPHP処理系について紹介します。今後のPHPのトレンドを占うのにお役立ていただければ幸いです。 PHPの現在 稿執筆時のPHPの最新バージョンは5.6.4です。最近のPHPはマイナーバージョンアップを1年ごとに繰り返すスタイルになっており、PHP 5.6.0はPHP 5.5.0から14ヶ月後の2014年8月にリリースされました。PHP 5.6ではphpdbgという新デバッガが同梱されるようになるなど注目点もありましたが、過去のバージョンアップに比べると変化が小さいバージョンアップでした。 ところで、PHPの次のバージョンアップではメジャーバージョンアップを予定しており、バージョン番号としては7.0となります。メジャーバージョンが5から7へと一気にジャンプするのは珍しい現象ですが、過去に開発中止となったP

    PHP処理系の未来 | gihyo.jp
  • PHPでID生成器を実装してみました | チャットワーククリエーターズブログ

    こんにちは!Web開発チームの安達です。 この記事は、ChatWork Advent Calendar2014 15日目の記事です。 みなさん、Scala使ってますか? 今日は「PHPでID生成器を実装してみた」というお話をしたいと思います。 IDの生成ウェブサービスのグローバル展開やスケーラビリティについて考えだすと、IDの生成に関わる課題が浮かび上がってくると思います。 例.「東京とシドニーのデータセンターにサーバを配備したとき、IDが衝突しないように生成できるのかな?」 またサービスの可用性について考えだすと、こちらでもID生成が絡む課題が。 例.「RDBMSのAUTO INCREMENTでIDを生成しているんだけど、この1台が落ちたらサービス止まっちゃう…。」(単一障害点) 理想としては、スケールアウト出来て、複数のサーバで並列にID生成が可能で、単一障害点にならないような形でID

    PHPでID生成器を実装してみました | チャットワーククリエーターズブログ
  • PHP7はなぜ速いのか

    PHPerがgolangでもがいてる話 -- Gopherくん The Go gopher was designed by Renee French. The gopher stickers was made by Takuya Ueda. Licensed under the Creative Commons 3.0 Attributions license.

    PHP7はなぜ速いのか
    shusatoo
    shusatoo 2014/12/25
    勉強になった。/
  • GitHub - ziadoz/awesome-php: A curated list of amazingly awesome PHP libraries, resources and shiny things.

    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 - ziadoz/awesome-php: A curated list of amazingly awesome PHP libraries, resources and shiny things.
    shusatoo
    shusatoo 2014/07/08
    「A curated list of amazingly awesome PHP libraries, resources and shiny things.」
  • downコマンドがなくupだけのDBマイグレーションツール Dbup - ぷぎがぽぎ

    ビー・バップ・ハイスクールって知ってますか? Dカップって大きいですよね? というわけで、超シンプルなDBマイグレーションツール Dbup を作ってみたので紹介。 Dbup http://brtriver.github.io/dbup/ 日語: http://brtriver.github.io/dbup/ja/ インストールから実行までのデモンストレーション dbup.pharをダウンロード 必要なディレクトリや設定ファイルを作成 statusで確認しつつ、upで実行 dbup demo from brtriver on Vimeo. 特徴 準備はdbup.pharをダウンロードするだけ up コマンドしかありません。down コマンドは存在しません マイグレーションの記述は親しみあるSQLそのままです。ORMやDSLを新しく覚える必要はありません PHP標準のPDOクラスを利用してい

    downコマンドがなくupだけのDBマイグレーションツール Dbup - ぷぎがぽぎ
    shusatoo
    shusatoo 2014/06/27
    シンプルですごく使いやすそう。あとでちゃんと見る。/
  • JSON SchemaとPHP

    というタイトルで発表してきました。Engine Yardさま、いつも会場提供ありがとうございます。 ( 第72回 PHP勉強会@東京 : ATND ) JSON Schemaというものがあって、すげー応用範囲が広くて、バリデーションなら大体これだけで出来ますよーという内容でした。 スライドはちょっとネタに走ってますが、書いてあることは割と気です。「JSON SchemaはJSONのバリデーションを行うためのもの」と一般には定義されていますが、JSON互換のデータ構造を持っている動的型付き言語においては、JSON Schemaで言語ネイティブのデータ構造が全てバリデーションできてしまうのです。 JSON Schemaはいまひとつ流行ってない気もしますが、構造そのもののバリデーションに主眼を置いていたり、言語を超えてバリデーションルールを共有できたり、結構おもしろいことができるので、使ってみ

    JSON SchemaとPHP
    shusatoo
    shusatoo 2014/06/12
    JSON Schemaアツいっす。/
  • Vagrant で作る PHP 開発環境 [実践編]

    2013/0915 PHPカンファレンス2013での発表資料です。 http://www.1x1.jp/blog/2013/09/php-enviroment-with-vagrant.htmlRead less

    Vagrant で作る PHP 開発環境 [実践編]
    shusatoo
    shusatoo 2014/05/26
    自分の開発環境もこういうスタイルに移行していけるように。/
  • PHP framework Phalcon

    The document discusses pursuing Domain-Driven Design practices in PHP. It covers building blocks like entities, value objects, aggregates, repositories, factories and services. It also discusses data modeling approaches like moving from active record to data mapper patterns. The document provides examples of implementing these concepts in PHP using annotations and libraries like Doctrine. It aims

    PHP framework Phalcon
  • コードをまとめる技術としてのイテレータとジェネレータ - Qiita

    ジェネレータが5.5から入ったことで完全に空気と化した(?)PHPのイテレータを、ちょっと違う面からまとめたいと思います。 コードをまとめるということ Don't Repeat Yourself(DRY)という言葉があります。達人プログラマーというに出てくる言葉です。 信頼性の高いソフトウェアを開発して、開発そのものを簡単に理解したりメンテナンスできるようにする唯一の方法は、DRY原則に従うことです。 「すべての知識はシステム内において、単一、かつ明確な、そして信頼できる表現になっていなければならない。」 (p. 27) 端的に言えば「同じことを二度書いてはいけない」ということですね。この原則を当てはめなくてもいい例外のパターンもいくつかあるのですが。。 コードにおいて「同じことを二度書いてはいけない」を忠実に守ろうとすると、同じコードを何度も書きたくなったら、何らかの方法でそのコードを

    コードをまとめる技術としてのイテレータとジェネレータ - Qiita
  • 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のインストール
  • PHPerはSpikaのどこを見たのか?

    レガシーズ 公式ブログ レガシーコードと戦い続ける謎の集団、レガシーズの公式ブログです。 ※レガシーズはレガシーコードを通じて正しいコードの構造や改善の手法を模索する覆面集団です。特定のプロダクトやサービスを誹謗中傷する事が目的ではありません。 みなさん、こんにちは。マスク・ド・レガシーです。 PHPカンファレンスも無事に終わり、ゆっくりと休暇を楽しんでいたところ、にわかにタイムラインが騒がしくなっていました。今回は話題の中心になったSpikaを題材にPHPのコーディングについて考えてみようと思います。 Spikaの概要SpikaはMITライセンス化のオープンソースとして公開されたメッセンジャーアプリケーションです。プロジェクトにはネイティブで実装されたiOS、Android向けのモバイルアプリケーションとPHPで実装されたサーバーサイドを組み合わせる事で独自のメッセンジャーサービスを構築

    PHPerはSpikaのどこを見たのか?
  • Zend_Date の年指定子には’y’を使おう | 開発メモるアル

    Zend_Date のget()メソッドを使って、独自形式で日付文字列を取得したい場合に、 日付出力に関する定数を使って取得することも多いと思います。 例えば、’YYYY-MM-dd’ という指定で、年月日のハイフン区切り文字列を期待できますが、 ‘YYYY-MM-dd’ ではなく、 ‘yyyy-MM-dd’ とした方が無難です。 Zend_Date Y指定子とy指定子 の説明 Zend_Dateのマニュアルに、’Y’と’y’に関する、気になる説明があります。 「年」 については、間違えやすい指定子がふたつあります。 ISO 形式の年を表す Y 指定子と、 実際の年を表す y 指定子です。 両者の違いは些細なものではありますが、非常に重要です。 Y は ISO 形式の年を算出するものです。 これは、カレンダーを作成する際によく用いられます。 2007 年 12 月 31 日を例にとって考え

    shusatoo
    shusatoo 2013/04/15
    ブログ書きました。
  • Backbone.js Model.save()によるPOSTデータをPHPで読み込む | 開発メモるアル

    最近Backbone.jsを使い始めました。 JavaScriptのMVCフレームワークの内、知名度が最も高いらしいということで。 日語の入門記事としてはこちらが非常に分かりやすく、参考にさせていただいています。 Backbone.js 入門 Model.save()のサンプル Backbone.jsのModelを使ってデータ登録・更新を行う場合、通常はModelメソッドのsave() を使うと思いますが、save()の動作を確認する簡単なサンプルを作ってみました。 (save()を使うと、リソースAPIに対してPOST(またはPUT)リクエストが送信されます。) Backbone.js saveサンプル サンプルの動作 「送信」ボタンをクリックすると、入力された名前と住所をPOSTリクエストで送信する。 POST送信された名前と住所のJSON文字列が、ボディに含まれてレスポンスが返って

    shusatoo
    shusatoo 2013/03/11
    ブログ書きました。
  • 開発メモるアル

    Capistranoを使って、Ruby初心者でもRuby以外のソースコードをデプロイできるようになるまでの流れです。 Rubyもよくわからないし、デプロイツールもろくに使ったことないけど、 Capistranoを使ってコードをデプロイしたい。という人に特に向けた記事です。 私自身そういう人でした。 私の理解不足の部分が多々ありますが、とにかくCapistranoを使ってデプロイができることを目的とします。私は今回の方法で、PHPのコードをデプロイしています。 「もう手動デプロイは嫌だ」「デプロイツール使いたい」「なんかデプロイツール使わないとヤバそう」と思っている方々にとってちょうどいい記事になればいいなと。 Read More →

    shusatoo
    shusatoo 2013/03/11
    ブログ書きました。
  • Create a REST API with PHP « Gen X Design | Ian Selby

    One of the latest (sort of) crazes sweeping the net is APIs, more specifically those that leverage REST. It’s really no surprise either, as consuming REST APIs is so incredibly easy… in any language. It’s also incredibly easy to create them as you essentially use nothing more than an HTTP spec that has existed for ages. One of the few things that I give Rails credit for is its well thought-out RES