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
次の土曜日5/30のPHPカンファレンス関西2015で基調講演(10:30-11:15)をさせて頂くことになりました。タイトルは「PHP7で変わること——言語仕様とエンジンの改善ポイント」です。チケットは既に売り切れているそうですが、参加者の方は早起きして来て頂けると幸いです。 このところQiitaに「PHP7調査」というシリーズを連投していたのも発表を意識してのことです。PHP7の新機能を一つずつ実際に試してみて、その結果を簡単にまとめていました。 今回は発表前の区切りとして、私の書いたPHP7関連の記事・プレゼン資料を一覧形式でまとめなおしてみます。PHPカンファレンス関西2015ではこれらの内容を踏まえつつ、気になる点を重点的にお伝えしたいと考えています。 内部実装のリファクタリング PHP7の目玉と言える、速度改善に関わる内容がほとんどです。 PHP7はなぜ速いのか - Slide
このエントリは闇PHP Advent Calendar 2015の14日目です。 本稿では、PHP7のzend_string構造体導入によるメリットの話をします。 PHP5とPHP7の文字列型の扱い PHP5では、文字列型の変数は次のようにメモリに割り当てられます(横幅いっぱいが8バイト)。 文字列の本体以外はzval構造体で管理し、文字列の本体は別途メモリ確保するという形になっています。一方、PHP7では次のようになります。 1つの文字列変数が、zval構造体とzend_string構造体の組み合わせで実現されています。 これだけ見ると、PHP7では文字列長と参照カウンタrefconuntがzvalから追い出されてzend_stringに移動したくらいで、PHP5とPHP7のメモリ消費量に大きな違いは無いように思えるかもしれません(あるいはPHP7の方が不利に見えるかもしれません)。しか
この記事はPHPアドベントカレンダー2015の3日目の記事です 。 MBSD寺田さんの記事「LWSとHTTPヘッダインジェクション」では、PHPのheader関数に関連して、PHP側のHTTPヘッダインジェクション対策を回避する手法と、それに対するPHP側の対応について書かれています。この記事では、寺田さんの記事を受けて、現在でもHTTPヘッダインジェクション攻撃が可能なPHP環境が残っているかを検証します。 HTTPヘッダインジェクションとは 以下の様なスクリプトがあるとします。 <?php header('Location: ' . $_GET['url']); オープンリダイレクタ脆弱性がありますが、それは気にしないとして、PHP5.1.1までのバージョンでは、以下の様な攻撃が可能でした。 http://example.jp/header.php?url=http://example
アンチパターンなので、見出しの内容はすべてバッドノウハウです。 前に書いたやつ PHPのモダンな開発環境を紹介する - Qiita PHP - Functoolsを作った - Qiita PHPのlist()はタプル展開のための機能 - Qiita 関係ないけどこれも: シェル、ターミナル、コンソール、コマンドライン 追記: 本文中でとりあげた「怖い話」について、ちゃんと説明しました PHP - namespaceとBOMに何の関係があるのさ - Qiita ファイルの最後に?>を書く PHPコードは<?phpで始まり?>で締める。それがPHPの常識(キリッ ……そんなことはもう綺麗さっぱり忘れよう。PHPはテンプレートエンジンではあるが、Webアプリケーションを書く上では、もはやテンプレートエンジンとしての機能は求められなくなりつつある。 不要な?>を書いてはいけない理由は明確で、<?p
<< 2007/05/ 1 1. [Ruby] ITmedia エンタープライズ:刑務作業でRuby、世界初の受刑者によるソフトウェア開発 2. [Ruby] MS、「Silverlight」を複数プラットフォーム対応へ - CNET Japan 3. お客様 4. [Ruby] Calling Erlang from Ruby (Teaser) 2 1. [言語] random-state.net / Method Cache Hacking (May 1st 2007) 2. ICFP Programming Contest 2007 3. 「働く」って何だっけ?日本の労働観を再考せよ (新日本的経営の姿):NBonline(日経ビジネス オンライン) 3 1. [原稿] 日経Linux 2007年7月号 2. [言語] The World of Hello World 3. [言語]
PHPの生みの親、ラスマス・ラードフ氏インタビュー 2015年12月に無事公開されたPHP7。その公開に先立ってPHPの生みの親であるラスマス・ラードフ氏に話を伺う機会がありました。英語で行われた一時間のインタビューは長大ですがラスマス氏の思想がよく分かる話題が多く、可能な限りそのままの形でお伝えすべく、その模様すべてをお届けします。 なお、インタビューは10月に開催されたPHPカンファレンス2015の講演終了後に行われ、リリースに関する話題などはその時点でのものです。 現在の仕事と生い立ち ―――― まずは、PHPを作ってくださってありがとうございます。今日の基調講演もすばらしかったです。 ラスマス:ありがとうございます。 ―――― いきなりですが、個人的な質問から始めてもいいでしょうか。 ラスマス:どうぞ。 ―――― Etsyではどのようなお仕事をなさっているんですか? ラスマ
PHP5.4 で実装された trait のまとめと実際の利用例 弊社技術ブログへお越しのみなさま、こんにちは。今年度入社の新人、 YamaYuski です。 先日、社内勉強会にて「traitを使って楽したい話」という演目で簡単に trait について発表しました。 trait が実装された PHP5.4 は2年も前にリリースされたものなので、何故今更、という話になると思います。 しかし、ネット上(特に日本語圏)においての trait の記事はまだまだ少なく、具体例を探すのも大変だったので、「もしかして trait はあまり浸透していないんじゃないか?」と考え、 trait の有用性を世に広めるためにこの記事を作り始めました。 今回は、初心者ながら個人的に調べたり考えたりしたことを、 trait とはなにか trait の実装方法と利用方法 どのようなケースで実装するか 実装時の小ネタ の4
※本サイトではアフィリエイト広告を利用しています。記事内および商品リンクにはプロモーションが含まれる場合があります。 session_start()について Webを探してもあまり記事が拾えなかったので、放流しておく。 PHPでWebからAPIのモジュールを呼ぶシステムを作っていたら、モジュールの呼び出しが逐次処理になっていることが分かった。 そのシステムでは、セッションを使ってデータの読み書きをしている。 どうやらsession_start()を呼んだあと、モジュールの実行が終わるまで、セッションに排他ロックがかかってしまう模様。 PHPのセッション関連の調べ物をする時に、この辺りの話がでてこなかったので、今まで気付かなかった。 session_start()の説明を見ても、やっぱりそんなこと書いてない。 …と思っていたが、フォーラムのところに、まさにその話が出ていた。 dave1010
PHP IP Calculator Coding with subnets and IP addresses Ipcalc net-mgmt/ipcalc is a handy tool for doing all sorts of calculations on IPs and subnets, but calling exec on a CLI tool and parsing the output is not always ideal. Working with IP addresses is pretty easy, with the right formular you can get any of information you need. In this post I am going to share some PHP methods for IP address cal
今年の 11 月にリリース予定の PHP 7 上で、WordPress を動かすとどうなるか、ということをデモを交えて紹介しました。 デモでは、9 年間稼働している本ブログ(Shin x blog)のコードを PHP 7 で動かしたりしてみました。そのままは動かないので、エラーメッセージを表示して、修正して、という作業を壇上で行い、最終的には表示するところまで進めました。PHP 7 への移行作業の雰囲気が伝われば嬉しいです:) WordPress では、PHP 7 の新機能よりも、パフォーマンスアップの方が恩恵が大きいと思うので、PHP 5.6 との比較も行っています。 WordCamp Kansai 2015 雑感 私は、2 日目の夕方のセッションだったので、午後に会場入りして、いくつかセッションを見ていました。そこで感じたのが以下でした。Web エンジニアが見て面白いセッションがいくつ
ci-phpunit-test for CodeIgniter 3.x An easier way to use PHPUnit with CodeIgniter 3.x. You don’t have to modify CodeIgniter core files at all. You can write controller tests easily. Nothing is untestable, maybe. Well documented. Requirements PHP 7.3 or later If you use PHP 7.3 or later and Monkey Patching, you must use PHP-Parser 4.2 or later as a Composer dependency. CodeIgniter 3.x PHPUnit 9.3 o
時代はTwigです あのEC-CUBEもバージョン3からテンプレートエンジンをTwigに変更します。 土曜日にあったOSC Nagoyaで教えてもらったのですが、実はTwigには、配列もオブジェクトもドット(.)で表現できるという圧倒的な優位性がありました。 Twigでは$foo['bar']も$foo->barも$foo->bar()も以下のように表現できます。 {{ foo.bar }} すっきりしてますね。 ということで、CodeIgniterでもTwigを使いたいと思います。 CodeIgniter Simple and Secure Twig CodeIgniterでTwigを簡単に使うために「CodeIgniter Simple and Secure Twig」というツールを作成しました。 https://github.com/kenjis/codeigniter-ss-twi
privateメソッドのテストは、複雑なデータ構造を扱う時など開発途中で時々どうしても書きたくなります。 その外のpublicのテストでカバーできたら、private のテストは捨てちゃったりしますが。 Rubyだと send 使って何でもできるのに、と思いつつ調べつつPHPでテスト書いてみました。 PHPだと? PHP5.4時代のprivateメソッドテスト手法 #php5_4: Architect Note こちらが詳しいのですが 5.3以前だとReflectionMethodを使う方法がありますが、 5.4以降だとClosureが使えます。 5.3のClosureだと$thisが渡せなくて辛い想いを経験したことがありますが 5.4以降で対応してくれたようです。 ($thisのcontextを変えれえないのはclosureとしては辛い。。) Closure::bind を使った例 最近
Our client had given me a REST API to which I need to make a PHP call. But as a matter of fact, the documentation given with the API is very limited, so I don't really know how to call the service. I've tried to Google it, but the only thing that came up was an already expired Yahoo! tutorial on how to call the service. Not mentioning the headers or anything in-depth information. Is there any dece
PHPで複数の API を呼び出そう! 今日では、Google, Yahoo, Amazon などいろいろなところで情報をAPI(Application Program Interface)というかたちで提供しています。そこで、それらの情報を PHPによって収集/利用するのに cURLというプロジェクトを利用してみます。 cURLとは cURLとは、いろいろな通信プロトコルを用いてデータを転送するライブラリやコマンドを提供するプロジェクトで、Client for URLsからきています。 この cURLを利用し、いろいろなサービスが提供している情報を収集することができます。 cURLを使ってみる 実際に Yahoo JAPANが提供している RSSを取得してみよう。(エラー処理は省いています) <?php $sUrl = "http://headlines.yahoo.co.jp/rss/
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く