タグ

PHPに関するgamiのブックマーク (113)

  • れいさの本当に目が覚めるPHP - Togetterまとめ

    全てのリンク先で肝が冷えます。 PHPerの早朝のネタトークが思いの外インパクトがあったのでまとめただけです。 PHPや利用者がどうこうという文脈ではありません。 ※タイトル変更しました。

    れいさの本当に目が覚めるPHP - Togetterまとめ
    gami
    gami 2014/06/13
  • 新言語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
    gami
    gami 2014/03/24
  • #CakePHP 爆速でAPIを実装するチュートリアル - 忍び歩く男 - SLYWALKER

    スマートフォンアプリのバックエンドや、JSフレームワークのバックエンドとして、JSONやXMLを返すAPIをサーバサイドで実装する機会は多いと思います。 今回は、ComposerとCakePHP2.4、FriendsOfCake/crudを使って爆速で実装してみます。 できあがりは、これ slywalker/cakephp-app-api_sample CakePHPのインストール まず、プロジェクトのディレクトリにcomposer.jsonをつくります composer.json { "require": { "pear-cakephp/cakephp": "2.4.*" }, "config": { "vendor-dir": "Vendor/" }, "repositories": [ { "type": "pear", "url": "http://pear.cakephp.org

    #CakePHP 爆速でAPIを実装するチュートリアル - 忍び歩く男 - SLYWALKER
    gami
    gami 2013/11/15
  • PHPMD(PHP Mess Detector)をjenkinsで利用してみる

    Pear PHP DependのスピンオフプロジェクトでもあるPHPMD(PHP Mess Detector)をjenkinsで利用してみる 1.pearチャネルの登録 $ sudo pear channel-discover pear.pdepend.org $ sudo pear channel-discover pear.phpmd.org 2.依存モジュールの追加 $ sudo pear install pdepend/PHP_Depend 3.PHPMDの追加 $ sudo pear install --alldeps phpmd/PHP_PMD 4.コマンドラインで利用してみる $ phpmd /path/to/target/ xml codesize,unusedcode,design,naming --reportfile phpms.xml 成功するとphpms.xmlが

    gami
    gami 2012/12/05
  • SET NAMESは禁止

    (Last Updated On: 2018年8月13日)MySQLには文字エンコーディングを変更する「SET NAMES」SQL文が用意されています。(PostgreSQLも同様のSQL文、SET CLIENT_ENCODINGがあります)この機能はSQLコンソールからは使ってよい機能ですが、アプリケーションからは使ってはならない機能です。SQLインジェクションに脆弱になる場合があります。 Ruby on Railsを読んでいて、ActiveRecordを説明している部分にMySQLの文字エンコーディングを変更する場合の例としてSET NAMESが利用されていました。アプリケーションからはSET NAMESは使ってはならない事を周知させるのは結構時間が必要かなと思いました。 PHPも5.2の途中からMySQLモジュールにlibmysqlの文字エンコーディング設定APIのラッパー関数が

    SET NAMESは禁止
  • ウェブサービスをゼロから作って成功したこと、失敗したこと - id:k-z-h

    php, 雑記いつもなら寝ている時間なのだけれど、なぜか睡魔がやってこないので過去の思い出をまとめてみる。去年の2月ごろ、新規案件のウェブサービスに開発メンバーとしてアサインされた。作るべきものが大量にあったため、4チーム(工期中多少増減したが)に分けてドメインごとに作業分担をした。そのうち、ウェブアプリケーション体(フロント、API、マネージツール)を担当するチームのサブリーダーが自分の役割だった。そのプロジェクトは去年の末に一旦の区切りを迎え、自分はそこで退職し、新たな環境に身を置くことにした。それから丸4ヶ月経って、自分が書いたコードと新しい環境で書かれていたコードを見比べて、思うところが多々ある。それらを文章としてまとめたいと思う。 失敗したこと簡単な骨組みを作ったあと、デプロイの仕組みを作った。php には phar という仕組みがある。これは jar/war のようにウェブサ

  • Amazonクラウド、PHP対応PaaS機能を追加。Gitによるデプロイも可能に

    クラウド上でPHP 5.3の環境が用意され、負荷に応じてインフラがスケーラブルに対応してくれる。Amazonクラウドが提供するPaaS機能である「Elastic Beanstalk」に、このようなPHP対応機能が追加されました。 Amazon Web Services Blog: AWS Elastic Beanstalk - Build PHP Apps Using Git-Based Deployment Elastic Beanstalk自体は無料で利用できます。必要な費用は、使用したAmazon EC2などのインフラ利用料のみ。 Elastic BeanstalkのPHP対応を紹介したブログから、説明を引用します。 Under the hood, Elastic Beanstalk leverages AWS services such Amazon EC2, Elastic Lo

    Amazonクラウド、PHP対応PaaS機能を追加。Gitによるデプロイも可能に
  • Travis CI で PHP 5.4 も CI する, PHPUnit も Behat もやる | Born Too Late

    この記事は PHP5.4 Advent Calendar jp: 2011 の 20 日目です. 前日: 次のプロジェクトPHP 5.4 の採用を提案するための 3 つのポイント (@co3k さん) 翌日: (@kokkekun さん) Travis CI とは Travis CI は, Continuous Integration (CI: 継続的インテグレーション) を実行するクラウド環境です. GitHub に push すると, Travis CI の VM 上に通知が行われ, GitHub リポジトリからのチェックアウトや, ユニットテストの実行が行われます. ユニットテストの実行は成功/失敗の結果により通知が行われ, また, 履歴も Travis CI 上に残ります. 元々は Ruby 専用のサービスだったと思いますが, その後 Clojure や Node.js などを

    Travis CI で PHP 5.4 も CI する, PHPUnit も Behat もやる | Born Too Late
    gami
    gami 2012/02/19
  • PHPのJITコンパイラ「HipHop Virtual Machine」、Facebookがオープンソースで公開

    PHPのJITコンパイラ「HipHop Virtual Machine」、Facebookがオープンソースで公開 HipHop Virtual Machineは、PHPを高速に実行するためにPHPのコードをC/C++に変換してg++でコンパイルし、バイナリコードにするHiphop compiler(hphpc)と、PHPのインタプリタであるHipHop interpreter (hphpi)を組み合わせたもの。PHPのコードをダイナミックにバイナリコードへと変換することで、高速な実行を目指しています。 コンパイラと同等以上の実行速度へ HipHopはFacebookが開発し、オープンソースとして公開しています。今回のHipHop Virtual Machineも、これらの開発の延長線上にあるものです。 Our experiences with hphpc led us to start e

    PHPのJITコンパイラ「HipHop Virtual Machine」、Facebookがオープンソースで公開
  • jenkins エレガントなコードを書くための執事のすすめ | Act as Professional

    勉強会したので、資料公開。 jenkinsを使って、自動テストだけでなく静的コード解析や統計情報をおこなって、ケント・ベックが提唱した「コードの臭い」を察知して、リファクタリングのタイミングや具体的な指摘のフィードバックを自動で得ようというお話。

    jenkins エレガントなコードを書くための執事のすすめ | Act as Professional
  • PHP 5.4におけるhtmlspecialchars()の問題 - Opensource days

    PHP 5.4 beta 2が出ているところですが、ソースコード(html.c)を見ていて、XSS対策で使用される htmlspecialchars()の文字コード指定がPHP 5.3とは異なる動作をすることに気が付きました。 内部文字コード(mbstring.internal_encoding)が使用される以下のようなシチュエーションです。 <?php // test.php echo htmlspecialchars("foo",ENT_QUOTES,""); mbstring.internal_encoding="SJIS-win"と指定することにします。(推奨はできませんが、)外字対応(絵文字対応)でCP932を使用したい場合を想定しています。 PHP 5.3で実行 php53/sapi/cli/php -d mbstring.internal_encoding="SJIS-win

    PHP 5.4におけるhtmlspecialchars()の問題 - Opensource days
  • CandyCaneの発表で感じた発信と恩返しの大切さ : candycane development blog

    前回のポストで書いたようにイギリスのマンチェスターで開催されたCakePHPの公式イベント、CakeFestに参加してきました。今回はスピーカーとしてこれまで開発を続けて来たCakePHPRedmine、CandyCaneについての発表を行い感じた事をまとめます。 発表までの経緯と内容 CandyCaneはRedmineをCakePHPに移植すればもっと使いやすい課題管理システムになるのではというアイデアからスタートしたオープンソースプロジェクトです。2009年の4月に行った開発合宿での成果を元に地道に開発を続け、現在は140ほどのページが動作しバグの管理ができる状態になっています。日のCakePHPでは少しは知られているソフトウェアですが、日のCakePHP以外のコミュニティや海外のコミュニティではあまり知られていない状態でした。 昨年のCakeFestにも応募したのですが、再挑

    gami
    gami 2011/09/16
  • もし『よくわかるPHPの教科書』の著者が徳丸浩の『安全なWebアプリケーションの作り方』を読んだら - ockeghem's blog

    たにぐちまことさんの書かれた『よくわかるPHPの教科書(以下、「よくわかる」)』を購入してパラパラと見ていたら、セキュリティ上の問題がかなりあることに気がつきました。そこで、拙著「体系的に学ぶ 安全なWebアプリケーションの作り方(以下、徳丸)」の章・節毎に照らし合わせて、「よくわかる」の脆弱性について報告します。主に、徳丸の4章と5章を参照します。 4.2 入力処理とセキュリティ 「よくわかる」のサンプルや解説では、入力値検証はほとんどしていません。しかし、入力値検証をしていないからといって即脆弱かというとそうではありません。徳丸でも強調しているように、入力値検証はアプリケーション要件(仕様)に沿っていることを確認するもので、セキュリティ対策が目的ではないからです。 「よくわかる」の中で、私が見た範囲で唯一の入力値検証は、郵便番号のチェックをするものです。以下に引用します(「よくわ

    もし『よくわかるPHPの教科書』の著者が徳丸浩の『安全なWebアプリケーションの作り方』を読んだら - ockeghem's blog
  • PHP5.3.7のcrypt関数に致命的な脆弱性(Bug #55439)

    PHP5.3.7のcrypt関数には致命的な脆弱性があります。最悪のケースでは、任意のパスワードでログインできてしまうという事態が発生します。該当する利用者は、至急、後述する回避策を実施することを推奨します。 概要 PHPのcrypt関数は、ソルト付きハッシュ値を簡単に求めることができます(公式リファレンス)。crypt関数のハッシュアルゴリズムとしてMD5を指定した場合、ソルトのみが出力され、ハッシュ値が空になります。これは、crypt関数の結果がソルトのみに依存し、パスワードには影響されないことを意味し、crypt関数を認証に用いている場合、任意のパスワードでログインに成功する可能性があります。 影響を受けるアプリケーション crypt関数を用い、ハッシュアルゴリズムとしてMD5を指定しているアプリケーション。 環境にも依存しますが、デフォルトがMD5の場合もあります。筆者のテスト環境

  • 色々なPHPフレームワークのパフォーマンスを比較 - cakephperの日記(CakePHP, Laravel, PHP)

    PHPフレームワークの速度比較では、HelloWorldを表示するのみの単純なアプリを用いた計測を元に比較表が作られることが多いです。特に後発のフレームワークは分かりやすい特徴付けとして速度をアピールする傾向にあるため、その比較表を元に N倍速いというアピールをしています。 PHPフレームワークを使うということは、DBまで絡めたWebアプリを作ることがほとんどなため、HelloWorldアプリの比較よりは、DBからレコード取得して表示するまでの処理速度を比較したほうがより現実に近い指標になると思います。特にCakePHP1系ではDBのデータ取得も独自ドライバになっていますし、モデルの処理も重いのでそこまで含めて他と比較したほうが良いと思ってます。 今回はDBから1レコード取得して表示するという簡単なアプリで各フレームワークの速度を評価しました。フレームワークに備わっているViewキャッシュ

    色々なPHPフレームワークのパフォーマンスを比較 - cakephperの日記(CakePHP, Laravel, PHP)
    gami
    gami 2011/08/02
  • PHPで Fatal Error時の状況を調べる方法

    PHPでFatal Errorが発生すると以降の処理が実行されない。 かつ、try/catchやset_error_handler()ではFatal Errorを捕まえられない。 なので通常は、Fatal Errorが起きたときの詳しい状況はログに残らない。 (例えばエラーが起きたPHPのファイル名はログに残るが、それを呼び出した側のPHP名や、データの状況は分からない。) しかし、register_shutdown_function()を使えばエラーが起きたときの状況をログに残せる。 register_shutdown_function('shutdownHandler'); function shutdownHandler(){ $error = error_get_last(); if ($error['type']) { //エラーの場合のみ error_log(...); //必

    gami
    gami 2011/04/14
  • PHPのset_erorr_handlerとregister_shutdown_functionとob関数について ( エラーを整形出力したい ) ::ハブろぐ

    いきなり今回のまとめ 例によって地味なPHP記事です。最初に今回で分かったことのまとめ。 処理が続行可能なエラーはset_error_handlerで捕捉できる Fatal Errorはset_error_handlerでは捕捉できない Fatal Errorはregister_shutdown_functionで捕捉できる shutdown処理の中に、ob関数(output buffering)があると、Fatal Errorの出力より先にshutdown処理が実行される shutdown処理の中では、debug_backtraceは使えない 今回は、タイトルにもある通り、エラーを整形して最後に出力したいというのが当初のメインテーマです。それを実装する中で、上のようなことがわかりましたので、それらについて以下で書いていきます。 追記 ( 2011-04-06 ) こしあんさんがコードとし

    PHPのset_erorr_handlerとregister_shutdown_functionとob関数について ( エラーを整形出力したい ) ::ハブろぐ
    gami
    gami 2011/04/11
  • dfltweb1.onamae.com – このドメインはお名前.comで取得されています。

    このドメインは お名前.com から取得されました。 お名前.com は GMOインターネットグループ(株) が運営する国内シェアNo.1のドメイン登録サービスです。 ※表示価格は、全て税込です。 ※サービス品質維持のため、一時的に対象となる料金へ一定割合の「サービス維持調整費」を加算させていただきます。 ※1 「国内シェア」は、ICANN(インターネットのドメイン名などの資源を管理する非営利団体)の公表数値をもとに集計。gTLDが集計の対象。 日のドメイン登録業者(レジストラ)(「ICANNがレジストラとして認定した企業」一覧(InterNIC提供)内に「Japan」の記載があるもの)を対象。 レジストラ「GMO Internet Group, Inc. d/b/a Onamae.com」のシェア値を集計。 2023年5月時点の調査。

    gami
    gami 2011/03/09
    あくまでprotectedメソッドのテストであって、privateメソッドのテストはできない。看板に偽りがあるような。
  • PHPの文字列連結のスピード

    Sound-uz Web Studioさんの文字列連結、どちらが速い?という記事で 文字列連結のスピードの比較があった。 それによると$str = "$str1$str2$str3";とするよりも$str = $str1.$str2.$str3;とした方が速いらしい。 でも、Simple Optimization for PHP and MySQLには Don't concatenate when you don't need to. (連結する必要がないならするな)と書いてあるけど、どうなんだろ。 というわけで自分でも比べてみた。 比較したページはこちら(開くのに少し時間がかかります) 比較結果はこんな感じに。 連結の種類処理の平均時間(秒)20回中最も速かった回数シングルクォート連結0.02243784666061417ダブルクォート連結0.0247802376747133非連結0.0

    PHPの文字列連結のスピード
    gami
    gami 2011/03/04
  • PHPUnitによるユニットテストについて - tetsunosukeのnotebook

    単純な関数に関してのユニットテストは簡単ですが、DBを伴うユニットテストについては自動化が面倒な状況にありました。RubyOnRails等で使われている、fixturesの考えに基づいて、以下のような方法で自動テストを行うことができるようになったので記録しておきます。 概要 テスト用に用意したDBに対して、CSVで作成したテスト用のデータをimportしながら、各クラスをテストしておく。CSVで予めテストデータを作成しておくため、テストコードの中に予め「メールアドレスが〜であるもの」という条件でテストコードを書くことができる。 前提条件 PHPのCLI版で、PDO, pgsqlが利用出来ること テスト用のデータベースを用意しておくこと RoRでは、production(番)、development(開発)、test(テスト)を用意することになっている 下記のオプションでCLI版のPHP

    PHPUnitによるユニットテストについて - tetsunosukeのnotebook