【PHP】PHPUnitを使う(初期セットアップとかんたんな使い方)

導入から簡単なテストコードの実行までの手順のまとめ 前提条件 composerを使ってインストールするので、composerが必要 セットアップ $ composer global require "phpunit/phpunit:*" $ ~/.composer/vendor/bin/phpunit --version PHPUnit 7.5.17 by Sebastian Bergmann and contributors. インストールされるディレクトリ cd ~/.composer/vendor/phpunit/phpunit テストコードの書き方 ここでは名前を保持するUserクラスのテストコードを書いてみる User.php (テスト対象のモジュール) <?php class User { public $name; public function getName() { return (string)$this->name; } } UserTest.php (テストコード例) TestCaseクラスを継承する(場所は以下) ~/.composer/vendor/phpunit/phpunit/src/Framework/TestCase.php testXXXXというメソッドを用意して、その中…

続きを読む

【PHP】PHP_CodeSnifferを使う(コーディングルールのカスタマイズ)

社内独自のコーディン規約などにあわせてカスタマイズする方法 インストールされるディレクトリ 以下のディレクトリにインストールされている ~/.composer/vendor/squizlabs/php_codesniffer/ -rw-r--r-- 1 638 10 28 13:36 CONTRIBUTING.md -rw-r--r-- 1 187 11 26 12:08 CodeSniffer.conf.dist -rw-r--r-- 1 6399 10 28 13:36 README.md -rw-r--r-- 1 10085 10 28 13:36 autoload.php drwxr-xr-x 6 192 10 28 13:36 bin -rw-r--r-- 1 1083 10 28 13:36 composer.json -rw-r--r-- 1 1533 10 28 13:36 licence.txt -rw-r--r-- 1 6280 10 28 13:36 phpcs.xml.dist -rw-r--r-- 1 7054 10 28 13:36 phpcs.xsd -rw-r--r-- 1 340 10 28 13:36 phpstan.neon drwxr-xr-x 5 160 10 28 13:36 scripts drwxr-xr-x 16 512 10 …

続きを読む

【PHP】PHP_CodeSnifferを使う(初期セットアップとかんたんな使い方)

PHP_CodeSnifferとは決められたルールに沿ってPHPコードが書かれているかチェックしてくれる。また、ルールに沿った形に整形してくれるPHP_CodeFixerもある。 前提条件 composerを使ってインストールするので、composerが必要 セットアップ $ composer global require "squizlabs/php_codesniffer=*" ~/.composer 配下に以下がインストールされる $ ~/.composer/vendor/bin/phpcs --version PHP_CodeSniffer version 3.5.2 (stable) by Squiz (http://www.squiz.net) $ ~/.composer/vendor/bin/phpcbf --version PHP_CodeSniffer version 3.5.2 (stable) by Squiz (http://www.squiz.net) phpcs --- ソースコードがコーディング規約を守っているかを判定する。 phpcbf --- ソースコードをコーディング規約に合わせて整形する。 対象ファイルを直接編集する。 ルールによっては修正できないものもある。 phpcs (PHP_CodeSniffer) ソースコード例 : test.php 以下…

続きを読む

【PHP】多言語のデータをCSVに出力する

多言語のテキストを含むデータをCSVファイルに出力して、さらにエクセルで開いて編集したいという要件があったのでその時の対応メモ データのイメージとしては以下 $data = [ array( 'id' => 1, 'name_ja-JP' => 'テスト', 'name_en-US' => 'test', 'name_zh-CN' => '测验', 'name_ko-KR' => '테스트', ), array( 'id' => 2, 'name_ja-JP' => '茄子', 'name_en-US' => 'eggplant', 'name_zh-CN' => '雄狮', 'name_ko-KR' => '가지', ), ]; ダメなケース 処理 最初は以下のようなコードだった。 エクセルで編集という要件から、Shift-JISに変換して出力している。 $handle = fopen('data.csv', 'w'); foreach($data as $row){ array_walk($row, function(&$item){ $item = mb_…

続きを読む

Gmail認証 -認証チェック- 【FuelPHP】

今回は前回のGmailログインにより払い出したアクセストークンが有効なトークンかどうかのチェックと、アクセストークン に紐づくユーザー情報を取得する部分になります。 ログイン後の各コントローラの規定クラス <?php /** * 規定クラス */ class Controller_Base extends Controller_Template { /** * ログインユーザーの情報格納用の配列 * * @var array ( * 'id' => string, * 'email' => string, * 'name' => string, * 'picture' => string, * 'locale' => string, * ) */ public $user = array(); /** * コントローラ内の共通処理 * ・ログインチェック * * @access public static */ public function before() { …

続きを読む

Gmail認証 -ログイン編-【FuelPHP】

Gmailを使ってGoogle認証APIでログインを実装する方法です。 前提としてGoogle APIsコンソール(以下URL)からサービスキーを発行します。 https://console.developers.google.com/apis/dashboard ※なお今回FuelPHPを使って実装していますが、フレームワークの特別な機能は特に使用していません。 ざっくりとしたサービスキー発行手順 Google APIsコンソールの左側メニュー → 認証情報 → 認証情報を作成 → OAuth クライアント ID 必要項目を入力名前:任意のアプリケーション名を入力承認済みの JavaScript 生成元:今回は使用しない承認済みのリダイレクト URI:認証後にGoogleからコールバックされるエンドポイント 保存ボタンで client_id と client_secret が発行される ※OAuth同意画面でアプリケーションのスコープを指定することができる。これを内部にすると、組織内のGmailアカウントに限定されるので、社内システムなどではチェックすると良い。 Google Api Key設定ファイル fuel/app/config/test/apikeys.php <?php /** * Google API Keys */ return array( 'client_id' =>…

続きを読む

もっと見る

スポンサーリンク