背景とか レガシーシステムのメンテとかで要改善点を洗い出すために静的解析ツール導入を検討。 PHP5.4から使えるEdgedesignCZ/phpqaを見つけたので導入してみた。 環境 HostOS:Mac Mojave Docker for Mac GuestOS:CentOS7.3 Dockerコンテナ内でPHP5.4 + Composerの環境が作れている前提 構築 プロジェクトのコンテナ内で

2020年10月24日 Composr 2.0.0 がリリースされました🙌 半年前の記事から少し気になってましたが、思ったより早くリリースされて嬉しいです! Composer 2.0 is now available! 今回はこちらのリリース記事の内容を要約してご紹介します! Composerとは? Composerとは、PHPのパッケージ管理ツールです。 composer.json に書かれたパッケージ及び依存関係にあるパッケージも含めコマンド一発でインストールしてくれます。 Composerを使っていないPHPプロジェクトはほぼほぼないと言っても良いでしょう。 そんな素敵なツールのメジャーバージョンアップニュースです。 変更点 記事の内容を要約してご紹介します。 詳細な変更点については、チェンジログをご覧ください。 パフォーマンスの向上 Composerとpackagist.orgの
動作確認はMacにphpをインストールしてローカルで行っています。 しかし、本番環境のphpバージョンと同じバージョンで動かしたいこともあるので、複数のphpバージョンを切り替えたいときがあります。 Homebrewを使う、phpのバージョン切り替え方法です。 コマンドラインで動作するphpとWebサーバー(Apache)で動作するphpのバージョンを変更します。 まずは複数バージョンのphpをインストール 違うバージョンのphpをインストールする前に、今動いているバージョンのphpをunlinkします。 ※下記の記述は古いバージョンです。 brew install php56 php56-apcu php56-imagick php56-intl php56-mcrypt php56-opcache php56-xdebug --with-httpd24 --with-libmysql
PHPもRubyみたいにバージョン管理したい 一番最初に触れた言語はPHPでその時は環境構築までやってちょっとチュートリアルやって挫折したと言う経験が昔ありました。で、その時はローカルに思いっきりPHPを落としてきて、色々ごちゃごちゃ設定したりしていたわけですが、Rubyを勉強して使うようになってからrbenvの存在を知り、バージョン管理するツールがあることを知ったので、PHPにもそう言うのないかと思ったら、phpbrewなるものがあることを教えてもらったので、インストールから、やっていきました。 物凄い使い方を理解するのに時間がかかりました。以下は、そのエラーや何やらの対処を書いてあります。結論からいきたい方は、使い方の結論から読んでください。 phpbrewのインストール 公式のGitHubには、丁寧にインストール前に必要なものが指定されているので、こちらをまずやっていきます。 mac
<?php namespace App\Model\Table; use Cake\ORM\Query; use Cake\ORM\RulesChecker; use Cake\ORM\Table; use Cake\Validation\Validator; class UsersTable extends Table { public function initialize(array $config) { parent::initialize($config); $this->setTable('users'); $this->setDisplayField('username'); $this->setPrimaryKey('id'); } public function validationDefault(Validator $validator) { $validator ->
はじめに 前回の記事(PHPUnit - テストカバレッジをHTMLレポートで出力 / phpdbg + php-code-coverage + PHPUnit)では、UnitTest 実行時の網羅率をビジュアル化する為に、 phpdbg と php-code-coverage を使用して、テストカバレッジを HTMLレポートする方法についてまとめました。 今回は、静的解析に位置づけられるもののうち、コード・メトリクスに関連した情報をイイ感じで出力するツールに関する導入手順を記載します。 想定環境 本記事は以下の環境にて動作確認を行っています。 OS : Windows / macOS 仮想環境 : VirtualBox + Vagrant コンテナ : Docker Container by docker-compose [^1] PHP PHP 7.2.11 composer 1.7.
CakePHP3でデータベースを引くときに、他のテーブルを取り込めるcontainという機能があります。単にデータを取ってくるだけでなく、更に細かい制御も行えます。 containの必要性 CakePHP3ではモデルクラスもTableとEntityに分かれたことで、1レコードがEntityオブジェクトとなったのですが、その結果発生しうるのがN+1問題です。Entityの中から関連づいたテーブルを参照しようとすると、それぞれのEntityごとにクエリが飛ぶため、クエリの数が膨れ上がってしまうのです。 これを防ぐために、データベースから関連するレコードを一気に引いてしまう、という手法があって、以下のどちらかで実装されています。 関連する別テーブルとJOINすることで、まとめてデータを引く 関連付けするキーを使って別のテーブルを引いて、あとから合成する CakePHP3で、このような「まとめて引
ルーティング綺麗に書いた方が見やすくない? Laravelでいうroutes/web.phpのこと 初学者のコード見てるともう少しすっきり書けるのになー そもそも使い方があんまり分からないのかな?と思い記事にする事にしました そもそもどういう仕組み HTTP動詞 postだったりgetだったりresourceとかその時のHTTP動詞を指定 URLのパス 定義した文字にアクセスした時に適用されるルート コントローラー名 app/Http/Controllers/の中で定義したいコントローラーを指定 メソッド名 上記で設定したコントローラー内のメソッドを指定 早速見やすい書き方講座 一般的な例としてユーザーが一般ユーザーと管理者で分かれており、それぞれにTOPページとCRUDページ(投稿・一覧・更新・削除・あと詳細)があるという構成です 良くある例 // 一般ユーザー Route::group
結果は順にtrue、true、falseです。 これがPHP7までの非厳密な比較(等価)演算子だったわけですが、まあおかしいよねってことで、この挙動がPHP8.0で変更になることになりました。 よもや今さら基本中の基本である比較演算子の動作を弄ってくるとは思わなかったぞ。 以下はSaner string to number comparisonsの日本語訳です。 PHP RFC: Saner string to number comparisons Introduction ==やその他の非厳密な比較演算子を用いた文字列と数値の比較は、現在は、文字列を数値にキャストし、その後整数か浮動小数の比較を行っています。 この結果、多数の不可解な結果が得られますが、中でも注目すべきは0 == "foobar"がtrueになることです。 このRFCでは、文字列が実際に数値型文字列である場合にのみ数値型
FROM php:7.3-apache COPY ./etc/docker/app/conf/*.conf /etc/apache2/sites-available/ RUN apt-get update && apt-get install -y vim zip unzip RUN set -ex apk --no-cache add postgresql-dev libpq-dev RUN apt-get install -y libpq-dev \ && docker-php-ext-install pdo pdo_pgsql pgsql mbstring RUN pecl install xdebug && \ docker-php-ext-enable xdebug COPY ./etc/docker/app/php_conf/xdebug.ini /usr/local/etc/
Laravelにはformバリデーションができる便利な機能があります!! 今回はそれを紹介していきます! 標準でもかなりの種類のバリデーションをサポートをしていますが、バリデーションを自分仕様にカスタマイズしたい時もあるので、カスタマイズバージョンも説明します! formバリデーションはどんなことができるか 例えば、こんなログイン画面があるとします ユーザーがメールアドレスを入力せずにログインボタンを押した場合は、 「emailは必須項目です。」というエラーが出ます。 仕様としてはこんな感じです! じゃあ次はどうやってバリデーションをするかみてみましょう〜 Laravelでformバリデーションをしよう!(標準装備編) バリデーションをする前のbladeをみる 先ほどのログイン画面のformの部分のbladeはこんな感じにしています。 (バリデーションを実装する前です。) <form cl
新規にプロジェクトを設置してcomposer updateしたら以下のエラーがでて行えなかった。 PHP Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 32 bytes) in phar:///usr/local/src/composer.phar/src/Composer/DependencyResolver/Solver.php on line 707 対処方法 php.iniの設定を変える 1.php.ini開く vim /etc/php.ini 2.php.ini内で検索 /memory_limit memory_limit = 128M 3.適宜変更 memory_limit = 1024M 4.apacheリスタート /etc/init.d/httpd resta
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く