3本立てのうちの「その2」です。3.0の基本的な設置方法を解説した記事は下記にありますので、基本的な設置方法から理解したい場合は、下記の記事から読んでください。3.0の設置解説・その1この記事では、基本的な設置方法を踏まえたうえで、アップロードする画像、ファイルのバリデーションや、アップロードするファイルを複数にする場合や、記事を削除したときに画像も一緒に削除する処理など、実用的な利用を想定したカスタマイズ方法を解説していきます。3.0をバリデーションなど実運用向けのカスタマイズ方法解説・その2最後の記事では、2記事までで解説した画像を新規登録でアップロードする処理に続く処理として、記事を更新する際の処理、および、登録した画像を表示する処理について解説します。3.0を使う方法、viewで使う方法解説・その3というわけで、ここから先は実用に即した形でカスタマイズする方法を紹介します。3.0の設置解説・その1」を参照してください。ちなみに、ファイルのアップロード処理は、PHP自体がサポートしていますので、プラグインを使わなくても比較的簡単に実装することができます。CakePHP3でファイルのアップロード処理を自作した際の、ソースコード付きの解説記事を下記で書いていますので合わせて参考にしてみてください。CakePHP3でファイルのアップロード処理を自作・解説付き・その1CakePHP3で画像・ファイルのアップロード処理を自作・解説付き・その2ファイルアップロード処理の理解のために読んでみるのもいいかもしれません。1つだけでしたが、複数のファイルをアップロードする処理も構築が可能です。3.画像データを保存するカラムをテーブルに追加アップロードする画像を保存するカラムを設定します。|「image1」「image2」のファイルに対して、それぞれ「保存フォルダのパス」「ファイルのタイプ」「ファイルのサイズ」を設定しています。5.モデルクラスにプラグインを利用する処理を追記モデルのクラスにファイルをアップロードする情報を追記します。(「$this->addBehavior()」の部分のみ記載しています。'image2_size',]],]);デフォルト設定では以下の設定になっています。'size',]],]);また、「保存フォルダのパス」「ファイルのタイプ」「ファイルのサイズ」は取得しなくていい、ということであれば、下記の様に簡潔に記述することも可能です。typeを追加します。$this->Form->control('image2',["type"=>"file"]);これで、複数のファイルもアップロードできるようになります。ファイルを保存する場所を指定したい!アップロードしたファイルが保存される場所は、デフォルトの設定では、下記の場所になっています。}これを変更する方法は、以下の通りです。5.モデルクラスにプラグインを利用する処理を追記モデルのクラスに「path」を追記します。(「$this->addBehavior()」の部分のみ記載しています。SEPARATOR(ディレクトリーセパレーター)」のことです。Linuxでは「/」、Windowsでは「\」のように差異があるため、OSが変わっても動作するように「{DS}」と記述します。ちなみに、パスの指定について、CakePHP3では、ドキュメントルートなら「WWW_ROOT」というように、あらかじめパスを定数で定めているものがいくつかあります。ここでパスを指定する場合、下記の様に書いてしまうと、エラーになります。ここで指定するパスは、アプリのルートからのパスを指定する箇所であるためです。CakePHP3で定数として設定されているファイルのパス、フォルダのパスについては下記の記事を参考にしてください。保存するファイル名を変更したい!「保存するファイル名を変更したい」では、分かりにくいですが、アップロードしたファイルは、ローカルに保存されていたファイル名のまま保存されます。具体的には、ローカルにある「aaa.jpg」というファイルをアップロードすると、「aaa.jpg」として保存されます。このままでは、同じファイル名で、違う画像をアップロードすると、すでにアップされていたファイルが上書きされてしまう問題が発生します。そのため、ファイル名が被らないように適切に処理をする必要があります。この処理は必ず設定した方がいいカスタマイズということになりますので、説明の順番としては、もっと前の方で説明するべきものかもしれません。5.モデルクラスにプラグインを利用する処理を追記モデルのクラスに「nameCallback」を追記します。(「$this->addBehavior()」の部分のみ記載しています。uniqid().'-'.strtolower($data['name']);}],]);記事を削除したとき、画像ファイルも一緒に削除したい!デフォルトの設定では、画像を登録した記事を削除しても、自動的に画像は削除されません。そのため、画像フォルダの中には削除された記事の画像が残り続ける、という結果になります。この状況を解消するため、記事を削除した際に、関連する画像も一緒に削除するというオプションが用意されています。このオプションを有効にする方法を解説します。5.モデルクラスにプラグインを利用する処理を追記モデルのクラスに「keepFilesOnDelete」を追記します。(「$this->addBehavior()」の部分のみ記載しています。false],]);「keepFilesOnDelete」を追記することで、記事を削除するとファイルも一緒に削除されます。アップロードするファイルをバリデーションをしたい!アップロードするファイルは、バリデーション(入力チェック)しないとどんなファイルでもアップロードできてしまいますので、アップロードするファイルをバリデーションする機能を追加する方法を解説します。編集するファイルは「/src/Model/Table/TopicsTable.php」です。useで「Cake\Validation\Validator」を使えるように設定します。Bakeで自動生成している場合はすでに追加されている場合もあるでしょう。Cake\Validation\Validator;また、Bakeで自動生成している場合は、「image1」の入力に対するバリデーションの設定は以下のようになっているでしょう。->allowEmpty('image1');12$validator->allowEmpty('image1');これを下記の様に変更を行います。4000byteまでです。100px以上必要です。'ファイル形式は、gif、jpeg、png、jpgのいずれかです。4000byteまでです。100px以上必要です。'ファイル形式は、gif、jpeg、png、jpgのいずれかです。']);1行目は、デフォルトでは設定されていないオプションのバリデーションルールを読み込む記述です。バリデーションルールを読み込むことで、ファイルサイズや、画像の高さ、幅などのチェックを行うことができるようになります。上記では、5行目から「isBelowMaxSize:ファイルの最大サイズ」、10行目から「isAboveMinWidth:画像ファイルの最小の横幅」を設定したサンプルです。それ以外のバリデーションの詳細な解説は、公式サイトも参照してください。http://cakephp-upload.readthedocs.io/en/latest/validation.htmlちなみに、5行目の「fileBelowMaxSize」、10行目の「fileAboveMinWidth」、15行目の「fileExtension」は、バリデーションの名前として設定しているものですので、自由な名称を付けてください。15行目からはファイルの拡張子をチェックする処理の設定を記述しています。拡張子のバリデーションの詳細については、下記を参照してください。https://api.cakephp.org/3.2/class-Cake.Validation.Validation.html#_extensionまた、サンプルには記述していませんが、下記を参考にすることで、「mimeType」でバリデーションを行うことも可能になります。example」にサンプルソースがありますので、これを参考にすることで、画像をアップロードしつつサムネイルの画像も生成することが可能になります。http://cakephp-upload.readthedocs.io/en/latest/examples.html#advanced-exampleちなみに、CakePHP2の頃は、下記のような形で記述方法でサムネイルの設定を行うことができたようです。CakePHP3では動作しませんでした。(現在調査中ですが、分かり次第情報を更新します。)5.モデルクラスにプラグインを利用する処理を追記モデルのクラスに「keepFilesOnDelete」を追記します。(「$this->addBehavior()」の部分のみ記載しています。'{size}_{filename}',],]);「thumbnails」は、サムネイルを生成するか、否かを指定するものです。設定値は、「true」「false」で、デフォルト値は「false」です。「true」を指定すると、サムネイルを生成します。「thumbnailMethod」は、サムネイルを生成するメソッドを指定します。設定値は、「imagick」「php」で、デフォルト値は「imagick」です。「Imagine」がインストールされていない環境の場合は、まず先にインストールしてください。https://github.com/burzum/cakephp-imagine-plugin「thumbnailPath」は、サムネイルを保存するフォルダを指定します。設定値は、「null」、もしくは、具体的なパスの指定です。デフォルト値は「null」です。「null」を指定した場合は、オリジナルのファイルが保存される場所と同じフォルダに保存されます。「thumbnailSizes」は、生成するサムネイルのサイズを指定します。配列で指定することで、複数のサイズのサムネイルを生成することができます。「thumbnailName」は、生成するサムネイルのファイル名称を指定します。Ajaxを使う方法の解説。Successとthenの両方を解説。CakePHP3GoogleAdwordsGoogleAdwords最後までお読みいただきましてありがとうございます。コメントをキャンセルメールアドレスが公開されることはありません。*サイト下記の空欄を埋めてください。date*日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)※入力いただいたコメントは管理者の承認後に掲載されます。Update構文(upsert)を実行する方法を解説。バルク処理の方法も用意されているため大量処理の場合も対応可能。Ajaxを使う方法の解説。Successとthenの両方を解説。CakePHP3でajaxを利用する処理の実装方法を解説。プルダウンを変更するとデータベースの値を取得し検索結果の内容を変更するというような処理を想定。CakePHP3にデザインテンプレートBootstrapを導入する方法・friendsofcake/bootstrap-ui使用CakePHP3にプラグイン「friendsofcake/bootstrap-ui」、デザインテンプレート「Bootstrap」を設置する手順を解説。Bootstrapの簡単な使い方やデフォルトのデザインとの混在方法なども解説。CakePHP3でデフォルトのソート条件を設定してユーザの選択肢たソート条件を有効にする方法CakePHP3でデフォルトのソート条件を設定しつつ画面上でユーザがソート条件を選択したときもソート処理を実行させる方法を解説。ソート条件はページネーションの処理として実装。CakePHP3のcontroller内でテンプレート、レイアウトを変更する際の指定方法CakePHP3でテンプレートファイルやレイアウトファイルをデフォルトのものから別のものに変更したい場合の指定方法を解説。CakePHP3でcomposerを利用してライブラリ・プラグインをインストールする方法CakePHP3でcomposerを使ってパッケージ(ライブラリ、プラグイン)をインストールする方法の解説。PHPを使うのはCakePHP3が初めてというような方への使い方から解説。ファイル名を乱数で設定CakePHPのアップロードするファイル名を乱数で変更しセキュリティを高める方法を解説。bakeの超初心者向けフォロー講座CakePHP3のメッセージ日本語化の設定(国際化と地域化の機能の使い方の解説)CakePHP3の英語のメッセージを日本語化(多言語化)する手順を解説。オリジナルのメッセージを作成する方法やプログラムで文言を追加する場合の対応なども解説。トップページを参考に解説CakePHP3で静的なページを設置する場合の方法(webrootとpagesとを活用する方法)を解説。pagesの解説はデフォルトのトップページがどう表示されているかを参考に解説。ルーティングの機能も。小学校でプログラミングの授業が始まる。プログラムを組むことを覚えることが本質ではなく理論的な手順の組み立てのトレーニングをする授業という理解が必要だと思う。Parserを使ってスクレイピングをする方法を解説。インストール方法、読み込み方法。具体的なスクレイピングを実行するサンプルソースも。Parser」の使い方を解説。要素を取得する方法、そこから属性を取得する方法を解説。マニュアルにはない注意点なども解説。2020.01.27PHPでスクレイピング。スクレイピング」で検索すると「phpQuery」ばかりヒットするが、10年以上も放置されている。Parser」をオススメする。2020.01.26PHPのcURLでAPIやWebサイトへのアクセス方法。file_get_contentsとの比較PHPからWebサイトにアクセスしてHTMLを取得、APIにアクセスして情報を取得する場合は、cURLがオススメ。file_get_contentsでも可能だがエラー制御に難がありトラブルのもとになる。add_shortcode関数を使ったショートコードという機能を利用します。不正なコピーコンテンツからの直リンクを拒否する.htaccessの設定方法。拒否するサイトを指定、許可するサイトを指定する方法、単純な拒否と画像の差し替えを解説。口コミサイトを作るために必要な評価点、レビューを投稿できるプラグインを探して評価。10プラグインをチェックし、8プラグインは詳細解説付き。2014.07.17BackWPupでバックアップ・リストア(復元)の具体的手順BackWPupその9。バックアップファイルからのリストア(復元)の手順です。109キーボード)は日本人サイズのキーボード。ショートカットも押しやすく女性や子供にも優しいサイズ。Web開発・運用に役立つ記事を中心に紹介しています。