タグ

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

  • Accept-Languageの実装例 - Qiita

    ここではリントの言葉で話せ。 はじめに Acecpt-LanguageはHTTPヘッダで「できれば日語か英語で読みたいなー(チラッチラッ」みたいな感じで期待する言語を指定する仕組みのこと。 言語の指定にはIETF言語タグを利用するので、各自調べてほしい。 (これもおもしろい話題だが、今回は対象にしない) 設計 Webサイトをどう多言語化するかは難しい課題だが、とりあえず今回は以下のような戦略をとることにする。 言語が指定されなかった場合または*が指定されたら、 日語のコンテンツを返す コンテンツが存在する言語(中国語zhを除く)が指定されたら、 その言語のコンテンツを返す コンテンツが存在しない言語が指定されたら、 英語のコンテンツを返す 中国語(zh)が指定された場合の追加条件 簡体/繁体のどちらかのコンテンツしかないときは、簡体字または繁体字の存在する方のコンテンツを返す 用字系(

    Accept-Languageの実装例 - Qiita
    k-holy
    k-holy 2018/01/31
  • PHP: Clean Code (clean-code-php) 蜜柑薬 - Qiita

    もくじ はじめに 変数 関数 オブジェクトとデータ構造 クラス S: 単一責任の原則 (SRP) O: オープン/クローズドの原則 (OCP) L: リスコフの置換原則 (LSP) I: インターフェイス分離の原則 (ISP) D: 依存逆転の法則 (DIP) 同じことを繰り返すな (DRY) はじめに この記事はRobert C. Martinの「Clean Code」のソフトウェアエンジニアリングの法則をPHPに適合させたものです。これはスタイルガイドではありません。読みやすく、再利用しやすく、そしてリファクタリングしやすいPHPコードを書くためのガイドです。 ここで挙げられるすべての原則は厳密に守らなくてはいけないわけではなく、少し守らなかったところで一般には許容されます。あくまでガイドラインですが、Clean Codeの著者たちがみな長年に渡って経験してきたことです。 この記事(

    PHP: Clean Code (clean-code-php) 蜜柑薬 - Qiita
    k-holy
    k-holy 2017/09/04
  • ComposerでPHPの依存関係を管理する - Qiita

    モダンなPHPの依存管理(パッケージ管理)に既に欠かせないものとなったComposerの導入と運用方法について説明します。「仕事で使えるComposer」でもざっくりと紹介しましたが、今回はもうちょっとだけ詳細に書きます。 概要についてざっくりと知りたい型は、先にこちらのスライドをご覧ください。 Composerとは何か ComposerはPHPのパッケージ(ライブラリやツールなど)をインストールするためのツールです。英語ではComposer is a dependency manager.と説明されます。 ほかのプログラミング言語のエコシステムとして、RubyでのgemコマンドとBundlerを組み合せたもの、Node.jsのnpmに相当します。Composerはこの二つと比べても後発だけあって、それらの良いところが取り入れられたものです。 Packagist Packagist (Th

    ComposerでPHPの依存関係を管理する - Qiita
  • 憂鬱なSQLのためのアレ、またはPDOと仲良くして枕を高くしてねむる - Qiita

    人間は皆誰しも実行時にSQLを組み立ててデータを取り出すことが大好きだ。そしてその行為の危険さもわからぬまま人類は太陽に向かってゆく。 あとこの記事で紹介してるライブラリは私が書いたコードじゃないです ヾ(〃><)ノ゙ はじめに まあ落ち着いて、去年のPHPカンファレンスの徳丸先生1のスライドを読んでほしい。ちなみに私は去年のPHPカンファレンスは風邪でダウンしてたので行けなかった。QiitaにはSlideShareの埋め込みができないので、↓の枠はただの画像リンクだ。 Phpcon2015 from Hiroshi Tokumaru 「うちはO/Rマッパーを使ってるよ」ってひとには、この記事はかんけいない。そう、人類はDoctrineのような叡智を手にしてる。素直に素晴らしいMVCモデルやDBレイヤーを持ったフレームワークを選ぶべきだ。私は使ったことがないので無責任な発言はできないが、L

    憂鬱なSQLのためのアレ、またはPDOと仲良くして枕を高くしてねむる - Qiita
    k-holy
    k-holy 2016/05/10
    クエリビルダ的なライブラリよりもこういうシンプルな置換の方が肌に合いそう。
  • PHP 5.6と7の新機能を使った画期的バリデータの実装 - Qiita

    以前、private/protectedなプロパティを外部から読み込み可能にするを書いたとき、記事のコメントにて「コレクション(配列)内の要素の型を検証したいよー」「でもそうすると全要素を検証しなくちゃいけないから実行時のパフォーマンスの問題があるよね」って話をしました。 気付いてしまった PHP: 関数の引数 - Manualを読んでた私は気付いてしまったのです。PHP 5.6で実装された機能を巧みに利用すればバリデータが実装可能なことに。 ……そうです。可変長引数です。 PHPの可変長引数とは PHP 5.6で追加された可変長引数は、以前の文法に...を追加することで0個以上の値をまとめて受け取れるようにしたものです。 f("a") // => // string(1) "a" // array(0) { // } f("a", "b") // => // string(1) "a"

    PHP 5.6と7の新機能を使った画期的バリデータの実装 - Qiita
    k-holy
    k-holy 2016/02/29
  • 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
    k-holy
    k-holy 2016/02/09
    この辺色々ありすぎて、ファイルを扱うクラスを設計する時に何を受け付けるべきか悩む…ファイルパスが常道ではあるんだろうけど、何かしら共通のインタフェースが欲しくなる
  • PHPとバージョン - Qiita

    こんにちは! PHPとバージョンの話をします! まじめな話はモダンPHPアンチパターンとかFunctoolsを作ったとか健全なpixivは健康なPHPに宿る〜モダンPHPを保つ7つの鍵に書いたので疲れました! バージョンの話と言ってもPHP7は主役ではありません。 みなさん大好き、php.netのマニュアルに載ってるやつです。 函数をリストアップしよう ところでphp.netに載ってる函数一覧は http://doc.php.net/downloads/json/php_manual_en.json で取得することができます。php_manual_ja.jsonはありません。 これを解釈してやれば、バージョンごとのPHPの函数一覧が作れるんじゃないかな?? 特にベンダー固有のモジュールに載ってる謎DBとかほとんど不要だし、PHP 5.5よりも廃止された函数を視界に入れてやる必要がない。 …

    PHPとバージョン - Qiita
    k-holy
    k-holy 2015/12/25
    “0.0.1とか0.2.0とかNoneとかUnknownとか^とかお前らは何者だよ”泣ける
  • 1