タグ

PHPに関するcelt69cobraのブックマーク (49)

  • 6分でわかる最近のPHP ― 2012夏

    さて夏がやってきました。夏と言えばPHPということで、昨年に引き続き、最近のPHP事情をご紹介。 1. PHP5.4リリース PHP5.4が2012年3月にリリースされました。 Traits や Short array syntax(配列の短縮構文)、array dereferencing(foo()[0]) などのPHP言語拡張、PHPコマンドで起動するビルトインサーバ、そしてパフォーマンスの改善など大きな変更が加えられています。 言語自体の機能追加も注目ですが、ビルトインサーバは多くの人にとってメリットになるでしょう。これを使えばPHPアプリケーションの動作確認のためにApacheやnginxなどのhttpdサーバを自分のPCに入れる必要はありません。 下記のようなコマンドを打つだけで、ビルトインサーバが起動します。新しいフレームワークやライブラリ、アプリケーションを試してみたい時に手

  • PHP: The Right Way

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

  • 「8時間耐久 PHP構築の教室」を開催しました。 : candycane development blog

    今回も怒涛の8時間耐久という感じで、いつになくハードな内容になりました。 VPSを借りたりするとブログなどをみて見よう見まねで構築をする事もあるかと思いますが、ソースからPHPをビルドしてインストールするという流れを通じてPHPの動作原理や、はやりのnginx + php-fpmの構成を構築してWordPressを動かすというスパルタな感じの勉強会でした。途中、仮想マシンのMACアドレスの問題やmbstringの問題でapacheがクラッシュするなどの問題に直面しましたが、ひとまず西川さんがnginx + php-fpmWordPressを動かすというゴールには到達する事ができました。また副産物としてCでHello Worldを動かすという作業もしてみたのでビルドしてバイナリを作るという流れが身についたのかなと思います。これで4つ目の8時間耐久シリーズになったわけですが、希望があれば内容

  • PHPUnitのアンチパターンとベストプラクティス

    みなさんこんにちは。@ryuzeeです。 SlideShareを徘徊していたらPHPUnitのアンチパターン・ベストプラクティスに関する素晴らしいスライドを見つけたので内容を抜粋で紹介します。 1. テストの中で何もテストしていない class FooTest extends PHPUnit_Framework_TestCase { public function testSomething() { $foo = new Foo; $foo->doSomething(new Bar); } } こういうテスト。どこにもアサーションがなくて何もチェックしていません。 $foo->doSomethingの戻り値を検証しないならなんの意味もありません。 純粋にTDDをしていれば、テストコード作成→テスト実行でRed→プロダクションコード作成→テスト実行でGreenなのでこういうテストは登場しませ

    PHPUnitのアンチパターンとベストプラクティス
  • curl_multiでHTTP並行リクエストを行うサンプル

    curl_multiはselectシステムコールを使って同時に複数のHTTPリクエストを行うことができます。マルチスレッドやらマルチプロセスを使っているわけではなく、原理はnode.jsなんかと近いI/O多重化で、一度に一つのことしかしていません。 PHPcurlはlibcurlAPIをほぼ踏襲しており、ちょっと取っつきにくいです。クラスでラッピングして、curl_close()などはデストラクタで呼ばれるように自動化すると、もう少しすっきりすると思います。 <?php /** * curl_multiでHTTP複数リクエストを並列実行するテンプレ * */ //タイムアウト時間を決めておく $TIMEOUT = 10; //10秒 /* * 1) 準備 * - curl_multiハンドラを用意 * - 各リクエストに対応するcurlハンドラを用意 * リクエスト分だけ必要 * *

    curl_multiでHTTP並行リクエストを行うサンプル
  • Blog

    明示的 意味 แพลตฟอร์มการเรียนรู้และพัฒนาทักษะด้วยเทคโนโลยี https://suin.io เป็นแพลตฟอร์มที่ให้คุณเรียนรู้และพัฒนาทักษะทางเทคโนโลยีอย่างสะดวกสบาย เรามุ่งมั่นในการให้ความรู้และประสบการณ์ที่มีคุณค่าในการพัฒนาตนเอง pascalcase

    Blog
  • PHP: グローバル変数の登録機能の使用法 - Manual

    PHPの変更点で最も議論の対象となったのは、おそらく、PHP » 4.2.0において PHPのディレクティブ register_globalsが デフォルトでONからOFFに変更された時でしょう。 当時、このディレクティブに依存することが一般的であり、多くの人は、 このパラメータの存在すら知らず、PHPの動作そのものであるというよう に考えていました。このページは、このディレクティブにより安全でな いコードを書く可能性があるということをこのページで説明しますが、 このディレクティブそのものが安全でないわけではなく、これを誤って使 用することが安全でないということを念頭においていてください。 register_globalsをonとした場合、この機能により、HTMLフォームから投 稿される変数と同時に、あらゆる種類の変数がスクリプトに注入される ことになります。これは、PHPにおいては変数の

  • 味のりとこんにゃくゼリーのエンジニアブログ: phpを高速化する60の方法

    2012年3月15日木曜日 phpを高速化する60の方法 01. static にできるメソッドは static として宣言しよう。(4倍速い) 02. echo の方が print より速い。 03. echo ‘文’,'字’; (カンマ区切り)の方が、’文’.'字’ (ドット連結)より速い。 04. ループの最大値は、ループ「内」ではなく「前」にセットしておこう。 05. 大きい配列のような変数は unset() してメモリを解放しよう。 06. マジックメソッド(例: __get, __set, __autoload)は使用を避けよう。 07. require_once はハイコストなのです。 08. include や require でファイルはフルパスで指定しよう。 09. スクリプト開始時間は time() でなく $_SERVER['REQUEST_TIME

  • メモリ管理 « PHP6.jp

    ※この内容はPHP6に特化した内容ではありません。 PHPなどのスクリプト言語は、基的には、メモリ管理を意識せずに利用できます。とはいうものの、大容量のCSVを生成するなど、大量にメモリを消費するプログラムを作成するのであればメモリ管理について知っておくべきです。 1.メモリ解放は参照が消失時 以下のプログラムを実行すると、まず、文字列”Hello Memory Management”が生成され、その参照が$hogeに格納される。2行目で$hogeをunsetすることで、文字列”Hello Memory Management”への参照がなくなり、メモリが解放される。

  • http://www.cpa-lab.com/tech/097

  • 肉少なめ | Item - PHPのチューニングネタ 和訳的なメモ

    Title : PHPのチューニングネタ 和訳的なメモ Posted on : 2006-11-25 Author : NKJG Category : Webメモ Permalink : PHPのチューニングネタ 和訳的なメモ Hatena Star : 文 12のPHP最適化テクニック:phpspot開発日誌が参照にしている、12 PHP optimization tips - Alex Moskalyuk Blogからリンクされている、Ilia Alshanetsky (Ilia Alshanetsky - Talks)氏のPHP & Performance、PHPのチューニングの部分のみ読んだ、つもり。英語ダメなんで。 以下PHPのチューニングに関する部分のみのまとめ的なもの。私的なメモ。誤訳の可能性を考えると信頼はしないほうがよさげ。私以外の人は原文を読むべ

  • PHP:eAccelerator で PHP 高速化 - Y-110's Wiki

    最新文章 2018-12-26 05:10▪ 龙岩一公交车遭劫持致5死应急办称嫌犯从居委会“逃出” 2018-12-26 05:10▪ 徐汇区科协第九次代表大会:发挥人才优势助推技术创新 2018-12-26 05:10▪ 山东将迎大风降温局部地区降温超10℃ 2018-12-26 05:10▪ 骗子称销赃低抛iPhoneX年轻候车人中了调包计买走模... 2018-12-26 05:10▪ 昆明首座装电梯天桥提供人性化便捷服务受欢迎 2018-12-26 05:10▪ 中组部要求:在元旦春节期间走访慰问生活困难党员、老党员、... 2018-12-26 05:10▪ 涉及30万人,葛洲坝集团宜昌基地六大类职能分离移交宜昌 2018-12-26 05:10▪ 央行:四季度88.8%的居民认为收入增加或基不变 2018-12-26 05:10▪ 一男子高速“飙车”后拍视频晒微信群因涉嫌危险

  • 第4回 PHP編 | gihyo.jp

    インストール コンパイルするにはlibyamlをあらかじめインストールする必要があります。以下の手順でlibyamlをインストールしてください(リスト6⁠)⁠。 リスト6 libyamlのインストール $ wget http://pyyaml.org/download/libyaml/yaml-0.0.1.tar.gz $ tar xzf yaml-0.0.1.tar.gz $ cd yaml-0.0.1/ $ ./configure $ make $ sudo make install 続いて、php_yamlを次の手順でインストールします(リスト7⁠)⁠。コンパイルする前に、こちらのパッチ[1]を適用してください。 リスト7 php_yamlのインストール $ wget http://www.opendogs.org/pub/php_yaml-0.3.0.tgz $ tar xzf p

    第4回 PHP編 | gihyo.jp
  • ウノウラボ Unoh Labs: 配列操作でE_NOTICE対策を簡単に行う方法

    ってことで前フリとは関係ないのですが,今回はjokagiが以前常用していた関数を紹介します. 配列の要素を扱うときどうしていますか? フォームを受け取るときによくあるパターンに下記のようなコードがあります. if ($_GET['id'] && $_GET['passwd']) { login($_GET['id'], $_GET['passwd']); } else { error_function(); }

  • PHP :: foreach ループ内で、next() と current() [Tipsというかメモ]

    foreach ブロック内で、配列ポインタが終端(最後の要素)に達したかどうかを判定する Tips です。 <?php $arr = array( '001' => 'りんご', '002' => 'みかん', '003' => 'メロン', '004' => 'バナナ' ); ?> 上記のような配列を、以下のように <a href=””>…</a> でリンクにしたい。区切り文字には | を使いたい。 <a href="./001.html">りんご</a> | <a href="./002.html">みかん</a> | <a href="./003.html">メロン</a> | <a href="./004.html">バナナ</a> りんご | みかん | メロン | バナナ こんなときは、foreach を利用するに限りますが、単純にループを回しただけでは、 最後にも | が入っ

  • PHP5 配列をメソッドチェインで再帰処理するクラス : エクスギア Blog

    CakePHPを使っていると、データ構造が多階層の配列で管理されていることが多く、一括で処理をしたい場合などに度々再帰処理を実装することがあります。 通常であれば、array_map系の関数を使って再帰的に処理を記述することになりますが、 毎回array_mapを使うのは面倒だし、もっと簡潔に記述したい 個別のグローバル関数・各メソッドを連続して簡単に利用したい という理由で、以下のように記述できるクラスを作成しました。 (クラスのソースコードは最後に記述しています) PLAIN TEXT PHP: // $arrの全ての要素にtrimと半角カナ変換を実施 ArrayMap::create($arr)->trim()->mb_convert_kana('KV'); // $arrの全ての要素に「先頭:」という文字を追加 ArrayMap::create($arr)->sprintf('先頭

  • vim使い向けのGDBフロントエンド、CGDBが便利という話 - id:anatooのブログ

    最近PHPの中身を探ることが多くなってきました。以前PHPカンファレンス2011で話した「PHPをハックしてオレオレ文法を追加する」のなかでは、PHPの内部の動きを知るにはソースコードリーティングだけだと実際にどんな動きをしているのかわかりづらいので、そういう時はGDB使ってやるといいよ、というふうなことを言いました。とかいいつつ、実際にはGDBを直接使ってはいません。操作がプリミティブ過ぎて使いづらいからです。代わりに、GDBフロントエンドの一つであるCGDBというソフトウェアを利用しています。 この記事ではこのCGDBの概要について簡単に説明します。 CGDBの何が便利なのか GDBフロントエンドには、DDD、Insightなどがあります。また、純粋なGDBフロントエンドの他にも、Eclipse CDT、XcodeなどGDBフロントエンドとしての機能を有しているIDEなどがあります。こ

    vim使い向けのGDBフロントエンド、CGDBが便利という話 - id:anatooのブログ
  • チューニンガソン2で2位でした : DSAS開発者の部屋

    10/1(土)にチューニンガソン2 というイベントに参加してきました。 もちろん前回に引き続き優勝を 目指していたのですが、今回は残念ながら2位でした。 今回もどんなチューニングをしていたのかの記録を公開します。 (ちなみに優勝したのは元KLabの濱野さんで、同じく メモを公開されています。) 今回のチューニンガソンのお題は、 Wikipedia の高速化で、 MediaWiki と Wikipedia の データが入った MySQL のデータには修正を加えずに、ランダムな100ページの表示速度を競いました。 マシンはメモリ1GBでデュアルコアのものが2台で、今回はWebサーバーの部分は自由に構成できます。 1. ボトルネックの確認 とりあえず AMI Linux の標準の php + apc で計測したところ、1ページの表示に1秒くらい使っています。 またphpか!ということで、やっぱり

    チューニンガソン2で2位でした : DSAS開発者の部屋
  • PHPカンファレンス2011 PHPとテストとCIと私~愛するあなたのため~

    PHPカンファレンス2011 において、PHPとテストとCIと私~愛するあなたのため~というタイトルでセッションを行った際のスライドです。 セッションの内容の説明はPHPカンファレンスに提出したものとして以下の通りとなります。 == レガシーコードの現場にたったPHP初心者の私がいかに、テストの文化をチームに伝えCIを導入したかを発表します。また、PHPとCI(Jenkins)を利用した場合のプラクティスを発表します。

    PHPカンファレンス2011 PHPとテストとCIと私~愛するあなたのため~
  • クローラを作る技術と設計 (毎週のハンズオン勉強会資料)

    仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)Hiroaki KOBAYASHI

    クローラを作る技術と設計 (毎週のハンズオン勉強会資料)