タグ

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

  • Starting a New PHP Package The Right Way — SitePoint

    Stay Relevant and Grow Your Career in TechPremium ResultsPublish articles on SitePointDaily curated jobsLearning PathsDiscounts to dev toolsStart Free Trial7 Day Free Trial. Cancel Anytime. Key Takeaways Good standards for PHP package design have emerged in recent years, including the use of a license, open-source code, excluding development stuff from dist, using PSR-4 autoloading, hosting on Pac

    Starting a New PHP Package The Right Way — SitePoint
    skit_n
    skit_n 2015/01/24
  • 自分流 Laravel 4 アプリケーションアーキテクチャ

    Laravel Advent Calendar 2014 の 9 日目です。 今年の Advent Calendar では、Laravel 5 リリース目前ということで、Laravel 5 の話題が多いのですが、それは他の方にお任せして、ここでは、Laravel 4 でのアプリケーション実装について書いてみます。 Laravel は自由度の高いフレームワークですので、アプリケーションも自由な構成にすることができます。ただ、この「自由さ」が故に、どういう構成が良いのかというのが悩ましい点でもあります。 このエントリでは、私が実際に構築したプロダクトをベースに構成例をご紹介します。Laravel アプリケーションを構築する上での参考になれば嬉しいです。 1. ディレクトリ構成 まずは、大枠のディレクトリ構成から。アプリケーションや開発環境用の Vagrantfile やプロビジョンファイルなど

  • PHP7で導入予定の新しいメモリマネージャをPHP5.6にバックポートした - hnwの日記

    現在、PHPの開発ブランチでは次期バージョンであるPHP7.0の開発が進められています。この新バージョンでは内部のリファクタリングと性能改善に重点が置かれるとみられており、言語仕様の観点ではメジャーバージョンアップの割に変化の小さいバージョンになりそうです。 ところで、このPHP7でメモリ管理まわりのコードが書き直されるのをご存じでしょうか。これはPHP7開発のキーマンの一人であるDmitry Stogovによるもので、アプリケーションによっては5%から10%の性能アップが期待できるようです。 しかし、PHP7は最速でも1年後のリリースと言われていますので、我々がこの恩恵を受ける日は随分先になってしまいます。そこで、この修正をPHP 5.6.2にバックポートしてみて、現行バージョンでも効果があるのかどうか実験してみました。 修正内容 PHP7で採用予定の新メモリマネージャは、最近の速いma

    PHP7で導入予定の新しいメモリマネージャをPHP5.6にバックポートした - hnwの日記
    skit_n
    skit_n 2014/11/07
  • PHP CodeSniffer ルールセットのカスタマイズ方法

    PHP CodeSniffer(PHPコードスニファー)は、PHPJavaScriptで書いたプログラムが、決められたコーディング規約に則って書かれているかをチェックできるツールです。対応しているコーディング規約は、Zend、PEAR、PSR2 などがあります。 私は普段、ZendのPHPコーディング規約に則って、プログラミングをしているのですが、一部例外の規約を設けているため、PHP CodeSniffer でプログラムコードをチェックすると、規約違反となりエラーがずらずらと表示されてしまいます。そこで、PHP CodeSniffer のルールセットをカスタマイズする方法を調べてみました。 PHP CodeSniffer のインストール 今回は、CentOS6.5にインストールしました。PEAR経由でのインストールになります。 yum -y install php-pear ←(PEA

    PHP CodeSniffer ルールセットのカスタマイズ方法
    skit_n
    skit_n 2014/11/06
  • PHPでCSP(Content Security Policy)を導入してXSS対策を強化してみよう — A Day in Serenity (Reloaded) — PHP, CodeIgniter, FuelPHP, Linux or something

    PHPで簡単にCSPを導入するためのライブラリを作成してみました。 kenjis/csp https://github.com/kenjis/php-csp-nonce-source 既存サイトへの影響を最小限にしてCSPが導入できることを目的としています。 基的にCSP nonce-sourceを使い、nonceのないscriptタグは実行しないようにすることでXSS対策を強化します。 このライブラリの仕様としては、CSP nonce-sourceに対応していると思われる指定ブラウザに対してのみCSPヘッダを出力します。現状、ChromeとFirefoxのみが指定されています。 なお、CSP nonce-sourceに対応したChromeのバージョンがわからないので、確認できたバージョン37以上としてます。 CSPについて CSPについてよく知らない方は以下のスライドなどをご覧下さい。

    PHPでCSP(Content Security Policy)を導入してXSS対策を強化してみよう — A Day in Serenity (Reloaded) — PHP, CodeIgniter, FuelPHP, Linux or something
    skit_n
    skit_n 2014/10/30
  • PHPカンファレンス2014 対談セッション 「ウェブエンジニアに必要なセキュリティスキルとは」のつぶやき

    PHPカンファレンス2014の大垣さんと徳丸さんの対談セッション「ウェブエンジニアに必要なセキュリティスキルとは」のつぶやきをまとめました。 セッション詳細はこちら https://joind.in/talk/view/12046

    PHPカンファレンス2014 対談セッション 「ウェブエンジニアに必要なセキュリティスキルとは」のつぶやき
  • 安全なPHPアプリケーションの作り方2014

    SecurityとValidationの奇妙な関係、あるいはDrupalはなぜValidationをしたがらないのか

    安全なPHPアプリケーションの作り方2014
  • PHPにおけるI/O多重化とyield

    PHPカンファレンス2014にて発表した内容です。 https://joind.in/talk/view/12038

    PHPにおけるI/O多重化とyield
    skit_n
    skit_n 2014/10/11
  • YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情

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

    YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
    skit_n
    skit_n 2014/09/11
    phpから入ると==でいいやと思えてしまう不思議
  • PHP 5.6リリースは8月28日 - 最後の準備リリース公開

    PHPデベロップメントチームは、「PHP: Hypertext Preprocessor - PHP 5.6.0RC4 is available」において、次期メジャーアップグレードリリースとなるPHP 5.6.0へ向けた最後の準備リリース版「PHP 5.6.0RC4」を公開したと発表した。今回のリリースではバグ修正のみが実施されている。すべてのPHPユーザへバージョンのテストとバグ報告の実施が呼びかけられている。 ダウンロードや新機能の解説ドキュメントなどは次のページにまとまっている。 ソースコードダウンロード PHP: Quality Assurance Windowsバイナリダウンロード PHP For Windows: Binaries and sources QA Releases 新機能解説ドキュメント PHP: New features - Manual PHP 5.6.0

    skit_n
    skit_n 2014/08/19
  • switch文を使ってはいけない

    昔Qiitaで書いた内容なんですが、PHPswitch文は悪名高い「==」演算子で比較を行います。 <?php switch (true) { case 0: echo '数字の0'; break; case '0': echo '文字列の0'; break; case '0.0': echo '文字列の0.0'; break; case true: echo '真偽値のtrue'; break; } このコードは「文字列の0.0」を出力します。大変分かりにくいですね。 この点はif ... elseif ...を使えば解決するんですが、switchで書きたくなるようなコードをelseifにするとおそらく読みにくくなるでしょう。 ではどうするか。 正解はオブジェクトのポリモーフィズム(多態性)機能を使うことです。 といっても、多態性で調べて出てくる記事とか書籍に関しては抽象的な説明が多い

    switch文を使ってはいけない
    skit_n
    skit_n 2014/08/14
  • PHP 5.4.4から==の挙動が一段と難しくなりました - hnwの日記

    PHPの==は両辺を適当に型キャストしてから比較するような演算子です。この型キャストの規則は難解すぎる上にドキュメントも不十分なため、PHPプログラマでも完璧に理解している人はほとんど居ないくらいの印象です。バグの原因になりかねないため、なるべく==を使わないようにしているPHPプログラマも多いはずです。 ところで、この==演算子の挙動がPHP 5.4.4から変更されていることはあまり知られていません。稿ではこの内容を紹介します。 Bug #54547 の騒動 まずはこの仕様変更の経緯を紹介します。 2年ほど昔、Hacker Newsで2^63付近の整数に対応する文字列をPHPで比較したときの挙動がおかしいというスレッドが盛り上がったことがありました。具体的には、PHPでは「'9223372036854775807' == '9223372036854775808'」がtrueになるとい

    PHP 5.4.4から==の挙動が一段と難しくなりました - hnwの日記
    skit_n
    skit_n 2014/08/10
  • PHP: 新機能 - Manual

    定数式 数値や文字列リテラルと定数を、これまでのバージョンでは静的な値が想定されていた場面 (定数やプロパティの宣言、関数のデフォルト引数など) で、スカラー式として扱えるようになりました。 <?php const ONE = 1; const TWO = ONE * 2; class C { const THREE = TWO + 1; const ONE_THIRD = ONE / self::THREE; const SENTENCE = 'THREE の値は '.self::THREE; public function f($a = ONE + self::THREE) { return $a; } } echo (new C)->f()."\n"; echo C::SENTENCE; ?>

    PHP: 新機能 - Manual
    skit_n
    skit_n 2014/07/04
  • この先生きのこるには

    ちょっとずつ複雑なことをやっていっているのですが、正直まだ自分で作っていくイメージがついていません。 加速と減速=イージングタイムラインパネルのフレーム数がでてるとこの下のスライダーでワークエリアの幅を操作できるグラフエディターというのが存在する。値グラフと速度グラフ。グラフを編集するときに触るのはハンドルだけイージングの速度が早くてコマが見える時はモーションブラーをかける(13:40)モーションブラーは色々ごまかせてしまうので最後につけたほうがいい。処理が重いから最初のほうでつけるとプレビューのときにしんどいとかもある(ただプレビューのときだけオフにするとかもできる)

    この先生きのこるには
    skit_n
    skit_n 2014/07/04
  • PHPカンファレンス関西2014でTravis CIについて発表しました #phpkansai

    今年で4回目を迎えたPHPカンファレンス関西に参加しました。 年々規模も大きくなり今年も大盛況のイベントでした。参加者数は延べ400人以上、講演も3トラックになり非常に大きなイベントです。 参加者層も幅広く、初心者向けのセッションなどにも幅広く人が集まっていました。 今回はブース出展と講演の両方を行ったのですが資料などをまとめておきます。 PHPカンファレンス関西2014 ブース出展と書籍販売 今回はブース出展ということでリニューアルしたパンフレットやレア物の歯ブラシなどのノベリティを持ち込みました。 1人体制での参加という事でブースを不在にせざるをえない事もありましたが、ご不明な点などはお問い合せいただければと思います。 #Chef実践入門 衝動買いした! #phpkansai pic.twitter.com/vbNC8lE6cc— 山裕介 (@yusuke) June 28, 201

    PHPカンファレンス関西2014でTravis CIについて発表しました #phpkansai
    skit_n
    skit_n 2014/06/30
  • 2014年の最新PHPフレームワークをベンチマークしてみる — A Day in Serenity (Reloaded) — PHP, CodeIgniter, FuelPHP, Linux or something

    CodeIgniter 3.0-dev、FuelPHP 1.7.2-dev、CakePHP 3.0.0-dev3、BEAR.Sunday 0.10.5、Laravel 4.2.1の5つの最新PHPフレームワークをベンチマークしてみました。 なお、Symfony、Zend Framework、Phalcon、Yii、Auraなども入れたいところですが、力尽きました。あしからず、ご了承願います。 ベンチマーク環境 XAMPP 1.8.3-4 for Linux (32bit) PHP 5.5.11 Zend OPcache v7.0.4-dev Apache 2.4.9 ベンチマーク方法 いわゆる「Hello World」ベンチマークです。フレームワークの最小のオーバーヘッドを計測するためのものになります。詳細はソースコード(後述)をご覧ください。 以下のようなコマンドで計測しました。 $ s

    2014年の最新PHPフレームワークをベンチマークしてみる — A Day in Serenity (Reloaded) — PHP, CodeIgniter, FuelPHP, Linux or something
  • PHP、"次世代PHP"の開発を開始 - JIT実装に向けコアAPIも変更

    PHPデベロップメントチームは5月27日(米国時間)、「PHP Next Generation」においてパフォーマンスを向上させた次世代のPHP実装を実現するための取り組みを開始したと伝えた。新しいコードベースはphpngというブランチとして作成されており、コア部分のAPIの変更やJIT実装の追加などが実施される見通し。 PHPデベロップメントチームは2013年いっぱいまで、PHPに対してJIT技術を適用することが可能であるかどうか、可能であればどういった取り組みをすればよいのか調査してきた。その結果、現在のPHPにおいてJIT技術を導入するためには、コア部分のAPIを変更する必要があると判断。今回新しくブランチが切られたphpngはその最初のステップを実施するためのコードベースとされている。 最終的にはコアAPIの変更を行ったのち、JIT技術の実装とPHPへの適用が行われる見通し。現在は

    skit_n
    skit_n 2014/05/30
  • Heroku で Composer を使う時に気を付けたいこと

    HerokuPHP をサポートしたので、テストがてら Laravel アプリケーションをデプロイしてみました。 デプロイしたのは、Doctrine を利用するアプリケーションだったのですが、ローカルでは composer でインストールできるのですが、Heroku にデプロイするとインストールされないという現象が起こりました。 Laravel での Doctrine 使用 今回のアプリケーションでは、DBのテーブルスキーマ情報を読み込んで、動的に画面を作るという処理があり、そこで Doctrine の SchemaManager を使っていました。 Laravel で、Doctrine の SchemaManager のインスタンスを取得するのは簡単で、下記のメソッドを実行するだけです。 $manager = DB::connection()->getDoctrineSchemaMa

    skit_n
    skit_n 2014/05/24
    Herokuでcomposer使う時の注意点
  • PHPでYAMLにアクセスする

    2024年2月1日 拙作プラグインの譲渡について 拙作のMovable Typeのプラグインを、株式会社ワールドイズマインに譲渡いたしました。 長きにわたり拙作のプラグインをご愛顧いただき、ありがとうございました。 PHPYAMLにアクセスしたい場面が出てきたので、その方法を調べてみました。 1.Spycを使う PHPで書かれたYAMLパーサーとして、「Spyc」があります。 これを使うのが簡単だと思います。 1-1.Spycのダウンロードとインストール まず、Spycのサイトからコードをダウンロードします。 ダウンロードしたZipファイルを解凍すると、「spyc.php」等のファイルと、いくつかのフォルダができます。 これらのうち、「spyc.php」ファイルのみサーバーにアップロードします。 そして、Spycを使いたいPHPのソースコードに、以下のようなrequire_once文を入

  • 【php】PEARをインストールする(Composerで) at softelメモ

    問題 最初は pearコマンド、次は Pyrus と使ってきたけど、さらに次へ! 答え 依存関係の管理は Composerにお任せ(PHP 5.3.2以上が必要)。 依存関係の管理がお仕事なので、ComposerがPEARリポジトリや、各種パッケージのリポジトリを提供しているわけではない。 各パッケージの取得元はここで、こういう依存関係があるよということを composer.json に記述しておいて、取得や管理とautoloadができるというもの。 Composerは、PEARのリポジトリに対応している。git、Subversionなどにも対応している。今まで管理できていたものに加えて、Composer対応のパッケージが扱えるようになって、対応できる範囲が広がると考えてよい。 完全に使いこなせなくても、いろいろなものを取ってきてくれて便利!と、とりあえず考えておいてもよい。 それと、au

    【php】PEARをインストールする(Composerで) at softelメモ