。PHPカンファレンス2017での発表資料です。

。PHPカンファレンス2017での発表資料です。
ようこそ 時代遅れの情報がウェブ上にあふれている。そんな情報を見たPHP初心者は戸惑ってしまうだろう。そして、まずい手法やまずいコードが広まってしまう。 そんなのはもうやめよう。PHP: The Right Way は気軽に読めるクイックリファレンスだ。PHPの一般的なコーディング規約、 ウェブ上のよくできたチュートリアルへのリンク、そして現時点でのベストプラクティスだと執筆者が考えていることをまとめた。 大事なのは、 PHPを使うための正式なお作法など存在しない ってこと。 このサイトの狙いは、はじめて PHP を使うことになった開発者に、いろんなトピックを紹介すること。 経験豊富なプロの人にとっても、これまで深く考えることなく使ってきた内容について、新鮮な見方を伝えられるだろう。 このサイトは、決して「どのツールを使えばいいのか」を教えるものじゃない。 いくつかの選択肢を示して、それぞ
(Last Updated On: )PHP7で基本的なデータ型である”int”や”float”、”array”タイプヒント(データ型のヒント)がサポートされます。使い方を間違えると思ってもいない問題が発生することがあります。しかし、正しく使えば問題ありません。タイプヒントの使い方を簡単に紹介します。 PHPのタイプヒント タイプヒント自体は新しい機能ではありません。PHP5からオブジェクトのクラス名をタイプヒントとして利用できました。 <?php class bar {} function foo(bar $v) { var_dump($v); } $v = new bar; foo($v); PHP7では”int”などの基本的なデータ型にもこの構文が使えるようになります。 PHP7からは戻り値のタイプヒントも利用できます。 <?php class bar {} function foo
こんにちは。 @hacktk です。 以前、AtomでPHPの開発環境をつくるというエントリを書きましたが、先日 Atom IDE というパッケージがリリースされましたので、今回はそちらの導入について書きます。 ※ 2017年12月3日、Visual Studio Codeに移行しました。 tech.innovator.jp.net 導入 こちらの記事を参考に進めます。(私の環境はMacOS Sierraです) blog.atom.io Atom本体 We strongly recommended you use Atom Beta 1.21 とありますので、まず Atom Beta をダウンロードして実行します。 1.21が起動されました。 ※ もし起動がうまくいかない場合は、 ~/.atom を削除するか退避すればうまくいくようです。 パッケージ atom-ide-ui, ide-ph
PHP には、PSR が策定されたおかげで、これをベースにコーディングスタイルがある程度整ってきました。 ここ近年開発がはじまったプロジェクトなら、PSR-1/2 をコーディングスタイルとして採用しているプロジェクトも多いのではないでしょうか。 せっかく採用したなら、実際に書くコードはできるだけこの基準に沿うようにしたいものです。ただ、ここにあまり手間をかけるのも本末転倒です。そこで、手間をかけずに、コーディングスタイルに従えるような方法を模索してみました。 開発環境には、PhpStorm を使う前提です。 PhpStorm の PSR1/PSR2 ルール まず、PhpStorm の Code Style で、PSR1/PSR2 をルールとして設定しました。 プロジェクト毎に規定したいので、Scheme はProjectにして、set from...をクリックして、Predefined S
phpunit を実行させるために Grunt を使いましたが・・・ PHP 開発でも Grunt を使う - ngの日記 まあファイルの更新を監視して phpunit(に限らず任意のコマンド)を実行するだけならワンライナーです。 $ inotifywait -e create,delete,modify,move -mr src tests|while read;do while read -t 0.3;do :;done;phpunit -c tests;done バラすとこうなります。 $ inotifywait -e create,delete,modify,move -m -r src/ tests/ | while read; do while read -t 0.3; do : done phpunit -c tests/ done ただし Linux に限る。 inotif
2016年12月22日にTransactd PHP ORMをリリースしました。 これはTransactdを使用したMySQL/MariaDB用のORMライブラリです。 今回はこのTransactd PHP ORMを紹介します。 Contents 主な特徴 高速なDBアクセス 省メモリ 高スループット 高可用性 自在なトランザクションとロック、スナップショット 詳細なドキュメント 欠点 詳細 ORMインターフェース リレーションのロードタイミング インピーダンスミスマッチ モデルのキャッシュ IDEのコード補完支援 プロパティアクセス速度 複雑なデータベース処理 まとめ 主な特徴 高速なDBアクセス Transactd PHP ORMは、ORMでありながらPDOを直接使用したアクセスよりも高速なデータアクセスができます。 下図は、TransactdとPDO、Laravel EloquentO
かれこれ5年ほどメンテしている拙作のPHP拡張「php-timecop」ですが、このたびPECLに登録しました(PECL :: Package :: timecop)。 PECLというのはPHP本体に含まれないPHP拡張を提供する公式のリポジトリです。PECLのアカウントは承認制になっており、誰でも登録できるわけではありません。イタズラやお試しでの登録は減るでしょうが、代わりに登録への精神的ハードルが上がってしまうような仕組みだと言えるでしょう。実際、PECLに登録されているパッケージ総数は365個(2017/7/8時点)と多くはありません。また、日本人と思われるPECLアカウントは筆者以外では5人でした。 本稿では、PHP拡張をPECLに登録するまでのプロセスや、実際に登録してみてわかったことなどを紹介します。 PECLに登録するメリット さて、そのPECLですが、PEAR*1の衰退とと
MySQLで文字コードを「utf8」とした場合UnicodeのBMPしか扱えないそうです。 http://yanok.net/2010/06/mysqlutf-8.html サロゲートペアを扱う必要がある場合は最初から文字コードを「utf8mb4」として定義しないといけないらしい。。。(-- なんとも残念な仕様です。「Unicode対応」と言いつつサロゲートペア未対応のものはたまにあるので、そこにはそれほど驚きませんが対応するのであれば「utf8mb4」みたいな新しいキーワードを導入するのではなく「utf8」として対応してほしかったと思います。 DB作成の際には文字コードは意識しますが何の迷いもなく「utf8」を選ぶっちゅーの(-- そんな愚痴はさておいて、ここではPlayframework(1.2.5)からMySQLのutf8mb4なデータベースを扱う話をします。 MySQLでutf8m
こんにちは、@9ensanです。 とりあえず、前回「Composer」のインストールと簡単な使い方までを説明しました。 今回は、Composerを使ってインストールできるライブラリを作ってみます。 Composerのインストールがまだな人は「PHPでライブラリの依存管理をするツール「Composer」の使い方」を参考にインストールしてください。 それでは開始です。 まずはライブラリ側を作成していきます。 nameの記述 まずは、nameを記述します。 "name": "nasneg/hello-world" requireの記述 とりあえず、monologを依存ライブラリとして記述 "require": { "monolog/monolog": "1.0.*" } versionの記述 versionをcomposer.jsonに記述することで指定することも出来ますが、gitのtagやbr
file_get_contents() はファイルパスを指定してデータを取得するだけではなく URLを指定すればそのURLの情報を手軽にとれる関数ですが 対API等に使うと色々とハマるポイントが多いので、それを簡単に解説したものです。 ※このページ向け に書いていたものですが、コード量が多いので分割しました。 問題点 file_get_contents() は ヘッダ情報の保持ルールやタイムアウト処理に癖があるため 返却されるステータスコードや、タイムアウト時に再リクエストなどを行うような 対APIの処理では、それらを知らないと想定していない事態に陥る。 コード例と解説 以下の要件でfunctionを書くとします。 jsonが返ってくるAPIにアクセスして、jsonをarray化する。 タイムアウトは3秒とし、そうなった場合は空の配列が返ってくる。 ステータスコードが200以外で返ってきた
定義済み例外とSPL例外 PHPにはPHP本体が持つ定義済み例外とPHPに標準でバンドルされるStandard PHP Library(SPL)の例外のSPL例外の2種類の例外があります。SPLは標準で組み込まれるのでPHPの機能として標準的に使うことも可能ですが、マニュアルでも個別のページを持っています。 定義済み例外 SPL例外 SPL例外 SPLの作者はPDOなど多数のパッケーのleadを務められているMarcus Börgerさんです。(PECLサイト参照 https://pecl.php.net/user/helly) MarcusさんがSPLのために作成したスライドStandard PHP Libraryから例外の部分を2つ抜粋します。 「守るべき3つのルール」 例外は例外の時に使用する (Exceptions are exceptions) 制御構造のために例外を用いない (
こんにちは。 PHP 5.4から、[]による配列の初期化ができるようになりました。 最近の言語やC言語ですら使える[]構文が今までPHPでは使用できませんでした。 従来、PHPで配列を生成するにはarray()という関数を使用しなければなりませんでした。 []が使えるようになったので疑問に思ったのですが、array()は関数です。 関数であれば多少なり呼び出しのオーバーヘッドがあるはず。 そのオーバーヘッドを考慮したらarray()で配列を初期化するより[]と書いたほうが高速なのでは? という疑問が出たので検証します。 書き方 念のために、[]で配列をどう記述するのかサンプルをお見せします。 <?php // ~5.3での書き方 $list = array(1, 2, 3); count($list); // 3 // 5.4~での書き方 $list = [1, 2, 3]; count(
I’m going to be honest: I was going to write a blog post about being a polyglot, how my year has been while branching out from PHP, and to encourage the community to stop being toxic about other technologies and communities, but Lorna beat me to it. Instead, I want to flip it on its head a little bit. I gave a keynote at PHPConf.Asia earlier this year that, quite frankly, didn’t go over well (in m
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く