タグ

PHPに関するtchsskのブックマーク (13)

  • CakePHP の書き方 | php-tips.com

    この記事は、CakePHP3 Advent Calendar 2016 25日目の記事ではありません。 まとめ Controller/Componentにビジネスロジックを書かない カスタムfindを活用しよう 1テーブル1モデルではなく、場面によってモデルクラスを増やそう Modelless Form / Tableless Modelを活用しよう beforeSave/afterSaveは諸刃の刃 Behaviorにビジネスロジック書くのもあり View層ではView Cell/View Blockを活用しよう CRUDプラグインお勧め この記事を書いた動機 CakePHPにおいてビジネスロジックに該当するものをComponentに書くという記事を見かけるたびに、それはアンチパターンじゃないのと感じている日々。 ビジネスロジックをどこに書くべきか、共通処理をどこに書くべきかというのを、

    CakePHP の書き方 | php-tips.com
  • クラウド時代だからこそ見直したい
PHPアプリケーションのパフォーマンスチューニング

    JJUG CCC 2020 Fallにて発表した資料になります。 セッションでは ・ 分散トレーシングとは ・ X-Rayの仕組みについて ・ 独自に拡張したポイントについて などを説明します。

    クラウド時代だからこそ見直したい
PHPアプリケーションのパフォーマンスチューニング
    tchssk
    tchssk 2016/04/16
  • phpcs & phpcbf コマンドについてメモ - Qiita

    PHP コーディングルールの整理にあたり、 phpcs と phpcbf について色々触ってみたので、メモ。 あくまで、メモ程度。(予防線) 概要 phpcs / phpcbf とは下記を略したコマンド名であり、それぞれの役目は下記の通り。 phpcs : PHP Code Sniffer 設定したルールに基づき、指定したファイルのコーディングスタイルを 判定 phpcbf : PHP Code Beautifier and Fixer 設定したルールに基づき、指定したファイルのコーディングスタイルを 整形 phpcs / phpcbf ともにソースコードは GitHub 上の squizlabs/PHP_CodeSniffer で公開されている。 インストール方法 インストール方法は README に書いてある通りだが、管理のしやすさから composer でインストールした方が良さそう

    phpcs & phpcbf コマンドについてメモ - Qiita
    tchssk
    tchssk 2016/04/15
  • PHP :: Doc Bug #72022 :: Typo in Ternary Operator documentation

    tchssk
    tchssk 2016/04/14
  • PHPの日時に関連する関数の制限

    Ruby on Rails, Web Services, Software Development, Startups 問題意識 PHPが表現できる日付に制限があり、1800年といった表記をdate関数から 出力できないため、1800年から2500年程度の時間表現を行う方法を導く。 実験内容 まず、制限値の詳細を知るために 1.date関数の第2引数に与えられるタイムスタンプの範囲を調べる。 2.strtotime関数の引数に指定できる時間の範囲を調べる。 実験結果 1.date関数の第2引数にタイムスタンプとして指定した場合: 最小値:-2147483648(1901-12-14 05:45:52) 最大値: 2147483647 (2038-01-19 12:14:07) 2.strtotime関数の引数に時間を指定した場合 最小値: 1901-12-14 05:45:52 最大値:

    PHPの日時に関連する関数の制限
    tchssk
    tchssk 2016/02/18
  • WordPressを2.5倍速くするPHPアクセラレータ「APC」

    PHPアクセラレータ「APC」を導入する デフォルト環境でのパフォーマンス測定が終わりましたので、高速化のチューニングを進めていきましょう。最初にPHPアクセラレータである「APC」を導入します。 導入の前に、PHPの実行プロセスを簡単に説明しておきます。PHPの実行プロセスは2段階で行われます。第一ステップとして、最初に人間が記述したPHPのソースコードを構文解析して中間コード(バイトコード)に変換します。第二ステップとして、変換された中間コードをPHP仮想マシンである「Zend Engine」が実行します。 PHPアクセラレータは、この第一ステップで生成された中間コードをキャッシュして、二度目からキャッシュされた中間コードを再利用します。該当するPHPのソースコードに変更が加えられていなければ、第一ステップを省略することでPHPの実行速度を向上させるPHPのモジュールです。PHPのソー

    WordPressを2.5倍速くするPHPアクセラレータ「APC」
    tchssk
    tchssk 2016/01/25
  • MacでApache+PHPの環境を構築する - Qiita

    MAMPを使わず標準でインストールされているApacheとPHPを使い、複数のWEBサイトをローカルで開発できるようにします。 MAMPを使っている場合は、停止させること。 Apacheの設定 複数のWEBサイトをローカルで開発できるようにするには、以下のファイルを設定する必要があります。

    MacでApache+PHPの環境を構築する - Qiita
  • 【シンプル】CentOS5にPHP5.5をyumで簡単にインストールする手順 | 田舎に住みたいエンジニアの日記

    CentOS5系では現在、php5.3がデフォルトバージョンです。しかしphp5.3のサポートももうすぐ終了です。php5.4 php5.5も利用可能です。今回はデフォルトのphp5.3をphp5.5にアップしましょう。 php5.4にアップする場合の情報はこちらにあります。 【シンプル】CentOS5にPHP5.4をyumで簡単にインストールする手順 | 田舎に住みたいエンジニアの日記 では、php5.5のインストール手順です。シンプルですので慣れていれば数分で完了します。 【事前確認】 既存環境を確認し、削除します。 PHP5.3系の確認 [html]# # rpm -qa | grep php php-cli-5.3.3-27.el6_5.x86_64 php-common-5.3.3-27.el6_5.x86_64 php-5.3.3-27.el6_5.x86_64[/html]

  • WordPress のデバッグ - Qiita

    define('WP_DEBUG', true); define('WP_DEBUG_DISPLAY', false); define('WP_DEBUG_LOG', true); if(!function_exists('_log')){ function _log($message) { if (WP_DEBUG === true) { if (is_array($message) || is_object($message)) { error_log(print_r($message, true)); } else { error_log($message); } } } }

    WordPress のデバッグ - Qiita
  • PHP fgetcsvにハマる・・・

    Uenoです。 最近、PHP環境移行でPHP2.8 → PHP5.1をやっていたのですが、さすがにバージョンが違いすぎ。 エラー出まくりです。 前仕様がPHP4ですらないwww エラーは色々調べながら直しまくりでしたがなんとか無事リリース!! までは良かったのですが、 お客様から「CSV取込機能が今まで通り機能していない」とのこと。 私は文字を「” (ダブルクォーテーション)」で括ってテストしてOKだったのですが、 お客様は今まで括っていなかったらしい。 試しに括らずにやると何か文字化けしている模様。。。 ????? お化けちゃん? 何で? エラー自体は出ていないのに何で?? 何もコード自体イジってないよ? エラーも出てないし。。。 ワケが分からなかったので色んなキーワードでググりました。 最終的に「PHP5 fgetcsv」でググってみるとその答えがありました。 PHP5では、 「fge

    PHP fgetcsvにハマる・・・
    tchssk
    tchssk 2015/06/15
  • PHPのバージョン違いによる予期せぬ事態!「fgetcsv」関数の盲点 | 株式会社LIG(リグ)|DX支援・システム開発・Web制作

    さまよえるプログラマ(当社比)のtetsuです。 個人的にPHP4系のサーバに関わることが多いのですが、PHP5のサーバでCSVファイルの取り込み処理を行う機会があった為、いつも通りコーディングしていたら予期せぬ事態に遭遇しました。 その時のことを、備忘録として残しておきます。 利用した関数 CSVファイル取り込み処理としてよく使われる関数がこれ fgetcsv() 関数自体はPHP4とPHP5、どちらでも使えます。 記述の仕方も大きく変わるものではないので、普通にコーディングを行ってました。 コーディングは難なく進みCSVファイルは「Shift-JIS」のエンコードタイプでシステムは「UTF-8」。この違いもエンコードの変更処理を加えて終わりと、いざ実行。。。 ざっくりな処理の流れ 1.CSVファイルをfopenする 2.whileでfgetcsvをする 3.UTF-8へ文字コードを独自

    PHPのバージョン違いによる予期せぬ事態!「fgetcsv」関数の盲点 | 株式会社LIG(リグ)|DX支援・システム開発・Web制作
    tchssk
    tchssk 2015/06/15
  • 【php】fgetcsv()はロケールの設定に依存する at softelメモ

    問題 fgetcsv()でShift_JISのCSVファイルをそのまま読み取るとき、「”(ダブルクォーテーション)」に囲まれていないマルチバイト文字があると、正常に読み取れない。 「”名前”,”住所”,”岐阜”,”愛知”,”東京”」は読めるけど、「名前,住所,岐阜,愛知,東京」は読めない。 改行が含まれている部分は、「”」で囲まないといけないので、きれいに読み取れるのだが、「名前,住所,岐阜,愛知,東京」が読めないのが不思議だ。 なんで? 答え phpのソースを読むと、C言語のmblen()がOSのロケールに依存するというところに行き着くが、マニュアルにもちゃんと「ロケール設定を考慮します」と書いてある。 注意: この関数はロケール設定を考慮します。もし LANG が例えば en_US.UTF-8 の場合、 ファイル中の 1 バイトエンコーディングは間違って読み込まれます。 つまり、OSの

    【php】fgetcsv()はロケールの設定に依存する at softelメモ
    tchssk
    tchssk 2015/06/15
  • PHPのfgetcsv()がsetlocaleしてもダメな時にやるべきたった一つの事 - たけまるの日記

    釣りタイトルがうまく付けられません。 さてタイトル通りなのですが、PHPのfgetcsvがうまく動かない場合があり、大抵の場合は setlocale(LC_ALL,'ja_JP.UTF-8');等と予め記述すれば動きます。(CSVファイルがUTF-8の場合) ただ今回、これではダメなケースにぶち当たりました。 そもそもsetlocale()は返り値として成功時に現在のロケール値を、失敗時にfalseを返すのですが、今回は見事にこれがfalseとなっておりました。 このsetlocaleに設定する値はOSに依存するのですが、とりあえずOSが持ってるlocale一覧を表示してみます。(環境はCentOS6) # locale -a C en_US en_US.iso88591 en_US.iso885915 en_US.utf8 POSIX 見事に「ja_JP.UTF-8」がありません。 OS

    PHPのfgetcsv()がsetlocaleしてもダメな時にやるべきたった一つの事 - たけまるの日記
    tchssk
    tchssk 2015/06/15
  • 1