タグ

*PHPと*phpに関するyamadarのブックマーク (199)

  • PHP: The Right Way

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

    yamadar
    yamadar 2017/10/02
  • PHP7のタイプヒントの使い方

    (Last Updated On: 2018年8月13日)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 {} fu

    PHP7のタイプヒントの使い方
    yamadar
    yamadar 2017/09/29
  • Atom IDEでPHPの開発環境をつくる - Innovator Japan Engineers’ Blog

    こんにちは。 @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

    Atom IDEでPHPの開発環境をつくる - Innovator Japan Engineers’ Blog
  • [初心者向け] composerのバージョン指定方法 | QUARTETCOM TECH BLOG

    composerを使っているけど、どうやってバージョン指定をしたらいいんだろう? そんな初心者さん向けの記事です。 composer 言わずと知れた、PHPの依存ライブラリを管理してくれる便利なツールです。 詳しくはcomposer で依存ライブラリを管理をご覧ください。 composer.json このファイルに依存ライブラリとバージョンを定義します。 例えばこのような感じですね。 "require": { "symfony/symfony": "~2.6", "knplabs/knp-menu-bundle": "1.1.0" }

    [初心者向け] composerのバージョン指定方法 | QUARTETCOM TECH BLOG
  • PHP コードの整形はプログラマがやるべきことじゃない

    PHP には、PSR が策定されたおかげで、これをベースにコーディングスタイルがある程度整ってきました。 ここ近年開発がはじまったプロジェクトなら、PSR-1/2 をコーディングスタイルとして採用しているプロジェクトも多いのではないでしょうか。 せっかく採用したなら、実際に書くコードはできるだけこの基準に沿うようにしたいものです。ただ、ここにあまり手間をかけるのも末転倒です。そこで、手間をかけずに、コーディングスタイルに従えるような方法を模索してみました。 開発環境には、PhpStorm を使う前提です。 PhpStorm の PSR1/PSR2 ルール まず、PhpStorm の Code Style で、PSR1/PSR2 をルールとして設定しました。 プロジェクト毎に規定したいので、Scheme はProjectにして、set from...をクリックして、Predefined S

    yamadar
    yamadar 2017/08/16
    今更だけど、読み返す機会があったのでブクマ
  • ファイルの更新を監視してコマンドを実行するワンライナー - ngyukiの日記

    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

    ファイルの更新を監視してコマンドを実行するワンライナー - ngyukiの日記
  • すぐれた PHP ライブラリとリソース

    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

    すぐれた PHP ライブラリとリソース
  • PDOより高速なORMライブラリ! Transactd PHP ORM リリース - BizStationブログ

    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

    PDOより高速なORMライブラリ! Transactd PHP ORM リリース - BizStationブログ
  • php-timecopをPECLに登録しました - hnwの日記

    かれこれ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の衰退とと

    php-timecopをPECLに登録しました - hnwの日記
    yamadar
    yamadar 2017/07/09
  • PlayとMySQLとサロゲートペア

    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

    yamadar
    yamadar 2017/06/16
    カラムのエンコーディングをutf8mb4にして、PHPからMySQLへの接続文字列のcharsetもutf8mb4にする。
  • A better way to write config files in PHP

    yamadar
    yamadar 2017/05/24
  • PHPでComposerを使ってインストール可能なライブラリの作り方

    こんにちは、@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

    PHPでComposerを使ってインストール可能なライブラリの作り方
    yamadar
    yamadar 2017/05/09
  • GitHub - hnw/php-timecop: A PHP extension providing "time travel" capabilities inspired by ruby timecop gem

    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

    GitHub - hnw/php-timecop: A PHP extension providing "time travel" capabilities inspired by ruby timecop gem
    yamadar
    yamadar 2017/03/17
  • PHP開発において、現在時刻を未来日にしてデバッグをする方法はありますでしょうか?

    yamadar
    yamadar 2017/03/17
  • PHPのarray()を[]に置換する方法 | mawatari.jp

    PHP5.4以降では、 array()を [](short array syntax)短縮構文で書くことができるようになりました。コードの中に存在している array()を []に置換する方法をメモしておきます。 PHP5.4に移行していく中で起こりうる array()と []が混在してて気持ち悪い!という状況等を解消するのに一役買ってくれることでしょう。 ちなみに []記号は、角括弧やブラケット (bracket)等と呼ばれます。 環境以下の環境で確認をしました。 当然ながら、PHP5.4以降がインストールされている必要があります。 ソフトウェアバージョン

    PHPのarray()を[]に置換する方法 | mawatari.jp
    yamadar
    yamadar 2017/02/24
  • APIなどにfile_get_contents()を使うのはオススメしない理由と代替案

    file_get_contents() はファイルパスを指定してデータを取得するだけではなく URLを指定すればそのURLの情報を手軽にとれる関数ですが 対API等に使うと色々とハマるポイントが多いので、それを簡単に解説したものです。 ※このページ向け に書いていたものですが、コード量が多いので分割しました。 問題点 file_get_contents() は ヘッダ情報の保持ルールやタイムアウト処理に癖があるため 返却されるステータスコードや、タイムアウト時に再リクエストなどを行うような 対APIの処理では、それらを知らないと想定していない事態に陥る。 コード例と解説 以下の要件でfunctionを書くとします。 jsonが返ってくるAPIにアクセスして、jsonをarray化する。 タイムアウトは3秒とし、そうなった場合は空の配列が返ってくる。 ステータスコードが200以外で返ってきた

    APIなどにfile_get_contents()を使うのはオススメしない理由と代替案
  • PHPの例外 - Qiita

    定義済み例外と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の例外 - Qiita
    yamadar
    yamadar 2016/12/21
  • php5.4から使える[]での配列初期化と、array()との速度比較

    こんにちは。 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(

    yamadar
    yamadar 2016/12/19
  • PHP is Dead – 24 Days in December

    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

    PHP is Dead – 24 Days in December
    yamadar
    yamadar 2016/12/19
    PHPは死んでない。HTTP/2がウェブを変える未来が近い今、ナレッジを外に持っていこうぜ、って記事
  • PHP 5からPHP 7への移行で、Tumblrはレイテンシが半分、CPU負荷も半減。テストツールでPHP 7への移行に問題ないかをチェック

    PHP 5からPHP 7への移行で、Tumblrはレイテンシが半分、CPU負荷も半減。テストツールでPHP 7への移行に問題ないかをチェック PHPの10年ぶりのメジャーバージョンアップとして昨年12月に登場した「PHP 7」は、PHP 5と比べて2倍以上の実行速度を実現するとリリース前からPHPの生みの親であるRasmus Lerdorf氏自身が説明してきました。 PHP 5からPHP 7へと内部システムのアップデートを行ったTumblrはその成果をブログで発表し、たしかにPHP 7のへ移行したことで実行速度が2倍になったことを裏付けています。 静的解析と自動テストでPHP 7への移行に問題がないかを確認 Tumblrが公開したブログ「Tumblr Engineering — PHP 7 at Tumblr」によると、Tumblrがその内部で稼働しているシステムをPHP 5からPHP 7

    PHP 5からPHP 7への移行で、Tumblrはレイテンシが半分、CPU負荷も半減。テストツールでPHP 7への移行に問題ないかをチェック
    yamadar
    yamadar 2016/11/16
    今ちょうど移行してテストしてるところ。よほど大規模だったりレガシーなコードだらけじゃない限り、そんなに移行コスト掛からないのではという印象。