k01ken’s b10g

He110 W0r1d!

PHP

CakePHP3でログイン時のチェックボックスの有無によってクッキーの寿命を変更する

開発環境は、Windows 10 Pro(64bit) + PHP 7.2.12 + CakePHP 3.7.9。今回の記事はCakePHP3のAuthComponentを使用した前提で作っていきます。 以下のチュートリアルに基づいて、作っておいてください。 https://book.cakephp.org/3/ja/tutorials-and-examples…

CakePHP3で自己結合を行う方法

開発環境は、Windows 10 Pro(64bit) + PHP 7.2.12 + CakePHP 3.7.9。今回は、postsテーブルを自己結合してみます。ネットを探しても、自分の意図にあった記事がなかったので書いてみることにしました。以下はpostsテーブルの中身。 postsテーブル create tab…

PHPでファイルのMIMEタイプとサイズを調べる

PHP

開発環境は、Windows10 Pro(64bit) + PHP 7.2.12。 "; finfo_close($finfo); echo "ファイルサイズ:".filesize(realpath($filename)); ?> ■参考リンク https://www.php.net…

CakePHP3でformatResults()を用いて後処理をする

開発環境は、Windows 10 Pro(64bit) + PHP 7.2.12 + CakePHP 3.7.9。findメソッドを用いて、containなどで関連もつなげて作り終わったクエリーに対して、formatResults()を用います。今回は、受け取った値に応じて、違う値を、新たに生成したカラムに入れた…

PHPでis_numericを使用する際に注意点

PHP

開発環境は、Windows10 Pro(64bit) + PHP 7.2.12。is_numericだと、文字列化された数値はtrue扱い。 逆に、文字列などをintval、(int)した場合、0が返り、is_numericではtrue扱いになる。 だから、数値の文字列は変換しないでそのまま渡した方が良い。 以下…

CakePHP3でReactを利用する

開発環境は、Windows 10 Pro(64bit) + CakePHP 3.7.8。qiita.com ここの記事を参考にして、CakePHPのルートディレクトリにて、 必要なモジュールをインストールしたが、bundle.jsを作成する段階でエラーが発生した。そこで、エラーメッセージに書いてある通…

ffmpegを利用する

開発環境は、Windows10 Pro(64bit)。動画から一部のフレームのサムネイル画像を作成したくて、ffmpegを利用してみることにしました。1.公式サイトへアクセスする https://www.ffmpeg.org/2.左サイドバーのDownloadと書かれたリンクをクリック 3.Get the pack…

CakePHP3でルーティングを行う

開発環境は、Windows 10 Pro(64bit) + PHP 7.2.12 + CakePHP 3.7.2 + XAMPP Control Panel v3.2.2。今回は具体的な事例として、トップページを、PostsController内のindexアクションにしたい場合の書き方を説明。1. /config/routes.phpを開く2.以下の部分を…

PHPでarray_searchを使用する際の注意点

PHP

開発環境は、PHP 7.2.12。 条件文の中で使用する際に注意すべき部分 array_search関数は、配列の中に指定の値があれば、その値のキーを、指定の値がなければ、falseを返す関数なのですが、例えば、以下のコードのように、返り値としてインデックス番号の0が…

ImagicKを使って色々と画像を加工してみる

PHP

開発環境は、PHP 7.2.12 + ImageMagicK ImageMagick 7.0.7-11 Q16 x86 2017-11-23 + XAMPP Control Panel v3.2.2。 新しく画像を作成する 新しく画像を作成し、png画像のフォーマットとして、表示させます。 newImage(100, 100, new ImagickPixel('red')); $…

CakePHP3でプラグイン(FriendsOfCake/bootstrap-ui)を用いてBootstrapを使う

開発環境は、Windows 10 Pro(64bit) + PHP 7.2.12 + CakePHP 3.6.14。1.composer.jsonを開いて、requireの中に以下を追加 "friendsofcake/bootstrap-ui": "^1.4",2.コマンドプロンプトからcomposer updateでプラグインをインストール3.config/bootstrap.php…

PHPUnitを使う

PHP

開発環境はWindows 10 Pro(64bit) + PHP 7.2.12。PHPでテストを行うパッケージであるPHPUnitを利用してみたいと思います。1.カレントディレクトリをxampp内のhtdocsディレクトリへ移動し、そこで、phpunitというディレクトリを作成して、カレントディレクト…

CakePHP3のバリデーションでフィールドの値がユニークなものかチェックする

開発環境は、Windows 10 Pro(64bit) + PHP 7.2.12 + CakePHP 3.6.13。Railsだと簡単にバリデーションできるんですが、CakePHPには、なぜか公式のドキュメントには専用メソッドが書いていなくて、ネットを検索したらありました。モデルのTable内にて、 add('…

CakePHP3で画像をアップロードする際に一時ファイルなどの情報の場所

開発環境は、Windows 10 Pro(64bit) + PHP 7.2.12 + CakePHP 3.6.13。画像などをアップロードしても、CakePHPでは、規約により$_FILESを使うことができない。その対策として、代替の方法を書いておきます。 request->getData("fileのname属性名"); echo $img…

PHPのImagickで縦横比を自動的に計算してサムネイル画像を作成する

PHP

開発環境はWindows10 Pro(64bit) + PHP 7.2.12。横幅を指定するだけで自動的に高さも計算して、サムネイルを作ってくれるプログラムが見つからなかったので自分で書いた。PHPでは、幅の数値を割るときに、floatに型変換しなくても、float型の値として小数点…

PHPの関数の引数への値渡しと参照渡し

PHP

開発環境はWindows10 Pro(64bit) + PHP 7.2.12。関数の引数への値渡しの場合、関数内部で引数の値を変えても、元の変数に影響はないが、参照渡しの場合、関数内部で引数の値を変えると、元の変数も変更される。参照渡しの場合は、関数内の引数の前に&(アンパ…

CakePHP3のクエリービルダーで詰まったところ

開発環境は、Windows 10 Pro(64bit) + PHP 7.2.12 + CakePHP 3.6.13。SQL文を直接書く時は簡単なんですけど、それをクエリービルダーをやる場合に、詰まってしまったポイントを書いておきます。 ■クエリービルダーでselect句を使う際のカラム名について クエ…

CakePHP3で画像を表示する

開発環境は、Windows 10 Professional(64bit)、CakePHP3.6.13、PHP 7.2.12。CakePHP3で画像を表示させたい場合、 HTMLヘルパーを用いた基本 /webroot/img/ディレクトリ内に入れた画像(例えば、test.jpg)を、テンプレート内にて、 Html->image("test.jpg"); ?…

WordPressでJavaScriptを使う方法

開発環境は、Windows 7 Professional(32bit)+XAMPP Control Panel v3.2.2。1.現在使っているテーマを調べる 管理画面の左サイドにあるペンキのアイコンにマウスを合わせて、テーマと書かれたテキストリンクをクリックする。そして、有効になっているテーマが…

ローカル環境(XAMPP)にてWordPressを起動する

開発環境は、Windows 7 Professional(32bit)+XAMPP Control Panel v3.2.2。 1.公式サイトへアクセスし、WordPressをダウンロードする。WordPress 4.9.7と書かれた(現時点で)青いボタンをクリックすると、自動でダウンロードが始まる。 日本語 « ダウンロード…

Laravelでマイグレーションする

開発環境は、Windows 7 Professional(32bit)+PHP 7.1.7+Laravel Framework 5.6.26。 php artisan make:migration create_テーブル名_table --create=テーブル名 と入力してRailsでいうマイグレーションスクリプト(テーブルの中身を定義するためのファイル)を…

Laravelでview部分の共通テンプレートの作成

開発環境は、Windows 7 Professional(32bit)+PHP 7.1.7+Laravel Framework 5.6.26。CakePHPのようにlayoutsディレクトリにdefault.ctp(HTMLの共通テンプレート)がないので、最初は戸惑ったのですが、Laravelでは自分で作る必要があるようです。/resources/vi…

Laravelのコマンド一覧

開発環境は、Windows 7 Professional(32bit)+PHP 7.1.7+Laravel Framework 5.6.26。php artisan serve - 組み込みサーバーの実行 php artisan list - コマンドの一覧 ・php artisanでも同様。 php artisan help [コマンド名] - 特定コマンドの説明 php artis…

Laravelをインストールする

開発環境は、Windows 7 Professional(32bit)+PHP 7.1.7+Laravel Framework 5.6.26。1.cドライブ直下にlrvlというディレクトリを作成し、カレントディレクトリにする mkdir lrvl cd lrvl 2.以下のcomposerコマンドを入力し、Laravelをインストールする compos…

PHPとJavaScript間でJSON形式でデータの受け渡しをする

開発環境は、Windows 7 Professional(32bit)+XAMPP v3.22+PHP 7.1.7。PHP側 json_encode関数は、連想配列をjson形式に変換する関数。失敗すればfalseを返す。 PHP側もJavaScript側も文字コードはUTF-8で保存すること。 100, "orange" => 80, "grape" => 200…

CakePHP3でコンポーネントを作成する

開発環境は、Windows 7 Professional(32bit)+XAMPP v3.22+CakePHP 3.6.4。複数のコントローラで使う共通処理をまとめたものをコンポーネントと言います。今回は、その作り方をメモしておきます。1.カレントディレクトリをコンポーネントを作るディレクトリに…

CakePHP3でプラグインを自作する

開発環境は、Windows 7 Professional(32bit)+XAMPP v3.22+CakePHP 3.6.4。1.カレントディレクトリをアプリ内に設定して以下のコマンドを入力。今回は、プラグイン名はContactManagerとしておく。 bin\cake bake plugin ContactManager・pluginsディレクトリ…

CakePHP3でマイグレーションを行う

開発環境は、Windows 7 Professional(32bit)+XAMPP v3.22+CakePHP 3.6.4。マイグレーションとは、コマンド経由で、テーブルを作成、追加、修正、削除などのテーブル操作をしつつ、そのバージョン管理(変更履歴を管理)ができるツールのことです。Phinxという…

PHPのclassについて

PHP

開発環境は、Windows 7 Professional(32bit)+XAMPP v3.22+PHP 7.1.7。 value; } public function m($i){ return $i * $i; } } $a = new A(); echo $a->value; // 3 echo $a->t(); // 3 echo A::m(5); // 25 ?> ■やってみて分かったこと ・クラス内の変数部分…

PHPのempty関数に色んな値を入れた時の挙動

PHP

開発環境は、Windows 7 Professional(32bit)+XAMPP v3.22+PHP 7.1.7。isset関数の挙動を調べたときに、empty関数はどうなのだろうと思って調べました。 null]; $val6 = ""; $val7 = "ok"; unset($val7); $val8 = -1; $val9 = 0; $var10 = ["fruits" => "ora…