タグ

ブックマーク / qiita.com/tadsan (9)

  • PSRとコーディングスタイルの関係、そしてPERへ - Qiita

    • PSR-1は高度な技術的相互運用性を目的としたコーディング標準 • PSR-2/→PSR-12はプロジェクト内での認知的摩擦を軽減するためのスタイルガイド • PSR-12はPER Coding Styleに進化した PSRとは何か PSRが何ではないかについて下記の記事にまとめたので、あとでゆっくり読んでください。 というか↑の記事にだいたい書いたので、この記事はコーディングスタイルに絞った内容ということになります。 重要な部分だけ抜萃して再掲しましょう。 PSRを管理するのはPHP-FIG (The PHP Framework Interoperability Group、PHPフレームワーク相互運用グループ)です。この組織はPHPのフレームワーク・CMS・ツールなどの開発者の寄合所帯です。 Frequently Asked Questions - PHP-FIGの内容をざっくり訳

    PSRとコーディングスタイルの関係、そしてPERへ - Qiita
  • PHPからJavaScriptにデータを受け渡すときに考えること - Qiita

    PHPのstringは任意のバイト列を扱えますが、JavaScript/JSONはUnicodeで扱える文字しか扱えません PHPのint / floatはプラットフォーム依存ですが、JavaScriptのnumberは整数と小数を型レベルで区別しません JSONのarrayに対応する型はPHPのarrayのうちリストであるものです PHPは配列(リスト)と連想配列を型レベルで区別せず、どちらもarrayです リストはキーが0からの抜けがない連番になっている要素が0個以上の配列です array_is_list()関数で連想配列とリストを判別できます array_values()で連想配列をリストに変換できます array_filter()の結果はフィルタされたキーがスキップされるのでリストではありませんが、結果をarray_values()に通すことでリストにできます JsonSerial

    PHPからJavaScriptにデータを受け渡すときに考えること - Qiita
  • array shapes記法(Object-like arrays)と旧PSR-5記法で型をつける - Qiita

    この数年でPHPでの開発でもCI(継続的インテグレーション)はかなり活発に行われるようになり、PHPUnitなどのテスティングフレームワークのほか、PHPStanやPhanなどのツールによる静的解析も浸透しつつあります。 関数/メソッドの引数と返り値、そしてオブジェクトのプロパティは比較的に型がつけやすいところですが、現状で無法地帯な箇所があります。そうです、配列の内部構造です。実際のところ、PHPDocに @param array や @return array と書くことは mixed と書くのとあまり大きな違いはありません。 ご存じの通り、PHPの配列は、動的配列(可変長配列)と連想配列(ハッシュテーブル、マップ)の特徴を併せ持ったデータ構造であり、配列は変数と同じくあらゆる値を格納することができるからです。 近年の開発が活発なPHPの静的解析ツール(PhpStormを除く)では配列

    array shapes記法(Object-like arrays)と旧PSR-5記法で型をつける - Qiita
  • PHPにコメントを書かせる、あるいはDocComment入門 (前編)

    コメントを書く必要がないほど読めるリーダブルなコード、つまり名が体を表し、コメントで回りくどく弁解説明の必要がないほどわかりやすいソースコードは極めて理想的なコードではあります。 しかしながら現実には、複数人で運用され続けるコードにはさまざまな文脈や背景が積み重なっていきます。そのような事情をプログラムコードだけで表現しようとすると、情報の共有に困難を生じることがあります。 コード中に適切にドキュメントを記述する習慣を身につけることで、チームでの共同開発において情報共有に役立てることができます。 私見による「よいコメント」の指標とは以下のようなものです 人間がひとめ見てわかりやすい ツールで処理しやすく、相互運用性がある この記事では、チームメンバーにPHPファイルにコメントを書かせる上でのPHPでの背景を順にそこそこ詳しく説明していきます。 対象読者層 PHP中級者 チームメンバーに体系

    PHPにコメントを書かせる、あるいはDocComment入門 (前編)
  • 2018年のPHPDoc事情とPSR-5 - Qiita

    PHPDocとは、クラスや関数などのブロックに記述できるDocComment内に記述する書式の通称です。この書式の情報源として時折PSR-5が参照されることがあるので簡単に状況をまとめます。 TL;DR PSR-5の標準化ステータスは昨年10月にABANDONED (放棄・議論停滞)になりました 2018年9月26日にPSR-5とPSR-19が分割され、ともにDRAFT状態に入りました PHPDocを型注釈として利用する各処理系の実装にはばらつきがあり、PSR-5とは相違点があります PhpStormは現在のところ(2018.1 EAP)PSR-5と互換性がありません 特にチーム開発では、対応する型記述の書式について注意が必要です PhpStormに配慮して書く場合、phpDocumentorの仕様を参照する方が安全です PHPDoc リファレンス — phpDocumentor この記事

    2018年のPHPDoc事情とPSR-5 - Qiita
  • composer.jsonのrequireを直接編集してはいけない - Qiita

    Composerで依存関係を追加する際に「composer.jsonを編集してrequireに追加してください」といった作業指示が時折見られますが、それはバッドノウハウです。 原則 依存関係を追加・削除するときはコマンドラインから composer require vendor/package で追加 composer remove vendor/package で削除 composer require --dev vendor/package で開発時に必要なものを追加 composer remove --dev vendor/package で開発時に必要なものを削除 番運用環境と同じバージョン・近い環境で実行する さもなくば、依存パッケージのバージョンを自分で特定しなければならなくなる 依存関係をアップデートするときに引数なしで composer update してはいけない マイ

    composer.jsonのrequireを直接編集してはいけない - Qiita
  • includeって書きたくない僕たちのためのオートローディングとComposer - Qiita

    こんにちはこんにちは、PHP書いてますか? include_once してますか? それともキミは require_once 派? ところで、現代的なPHPではクラスファイル(ここではclass, trait, interfaceを含む定義ファイル)では、わざわざファイルをinclude/requireしなくても自動的に読み込む機能をカンタンに構築できる環境があるので、紹介いたします。 この記事は手を動かして動作確認しながら読めるように構成してありますので、斜め読みするだけではもったいないですよ ヾ(〃><)ノ゙ はじめに 今回の記事ではクラスの自動ロード(オートローディング)の概要に絞って解説しますが、名前空間の文法や細かい説明を含めて包括的に解説した記事は、既にWEB+DB PRESS Vol.91|技術評論社にて「PHP大規模開発入門 第12回 名前空間とオートローディング」として発

    includeって書きたくない僕たちのためのオートローディングとComposer - Qiita
  • PHPでファイルを開いて読み込む - Qiita

    PHP初心者のときに混乱したし、未だに初心者が困ってるのをよく見掛ける。 はやわかり ファイル全体をまるごと読み込みたい→ file_get_contents() ファイルの中身をまるごと出力したい→ readfile() 行単位のテキストファイルを配列として読み込みたい→ file() ファイルをバイト単位で読み込みたい→ fopen()+fread() CSVを読み込みたい→ SplFileObjectクラス オブジェクト指向的に操作したい→ SplFileObjectクラス クラウドとかFTPとかにあるファイルを読み込みたい→ League\Flysystemライブラリ バイナリファイルを操作したいとか事情がない限り、feof()とかfclose()とかの出番はない。 file_get_contents() (PHP: file_get_contents - Manualより抜萃、2

    PHPでファイルを開いて読み込む - Qiita
  • モダンPHPアンチパターン - Qiita

    アンチパターンなので、見出しの内容はすべてバッドノウハウです。 前に書いたやつ PHPのモダンな開発環境を紹介する - Qiita PHP - Functoolsを作った - Qiita PHPのlist()はタプル展開のための機能 - Qiita 関係ないけどこれも: シェル、ターミナル、コンソール、コマンドライン 追記: 文中でとりあげた「怖い話」について、ちゃんと説明しました PHP - namespaceとBOMに何の関係があるのさ - Qiita ファイルの最後に?>を書く PHPコードは<?phpで始まり?>で締める。それがPHPの常識(キリッ ……そんなことはもう綺麗さっぱり忘れよう。PHPはテンプレートエンジンではあるが、Webアプリケーションを書く上では、もはやテンプレートエンジンとしての機能は求められなくなりつつある。 不要な?>を書いてはいけない理由は明確で、<?p

    モダンPHPアンチパターン - Qiita
  • 1