- 1. 【PHP】学習メモ / アクセサメソッド(セッター、ゲッターの目的と使い方)
- 2. Laravelのバリデーションエラーメッセージを5分で日本語化する
- 3. PHP ファイル操作
- 4. Moodle 3.7 マニュアル – Apache
- 5. OpenShiftによるJava EEアプリケーションのモダナイゼーションをやってみた(3)
- 6. Xamppのsendmailとgmailでメール送信フォームを作りましょ
- 7. 大富豪から学ぶアルゴリズム
- 8. php wsdlファイル自動生成
- 9. Laravel5.8でTraitsを利用してCSVファイルダウンロード
- 10. var_dump, ddの省略表示を回避する方法
- 11. PHPがメインの経験者が、Pythonを始めて3日目の話
- 12. Symfony 4.4 LTS のプロジェクトの作り方
- 13. herokuCLIを通したherokuの開始(入門者用)
- 14. MACでPHPからMailHogにメールを投げてみる設定
- 15. 【PHP】学習メモ / 多次元配列
- 16. PHPのoci_bind_by_name()で日付型項目が更新できない
- 17. 簡単 STEPごとに作る自作MVC WebFramework PART2
- 18. GitHubにPushしたらGoogle Cloud BuildでCIが動いてSlack通知するやつ
- 19. LaravelにSassを3分で導入する
- 20. Laravelでtextareaのmaxlengthと、ValidationRuleのmaxが改行によって判定ずれする
【PHP】学習メモ / アクセサメソッド(セッター、ゲッターの目的と使い方)
「変数の値に直接アクセスできるようにするのは良くない。アクセサメソッドを使えば間接的にアクセスするようにできる」みたいなことをどこかで学んだが、結局アクセスしてんじゃん、と思ったので具体的に何ができるのか一歩踏み込んで調べてみた。
#アクセサメソッドの意味と使う目的
プロパティのアクセス権をprivateにするとプロパティの値をクラスの外から変更できなくなる。
[アクセス権について](https://qiita.com/kota_sho/items/b76a4dfeda441543d2a2)セッター:プロパティの値を変更するメソッド
ゲッター:プロパティの値を読み出すメソッドpublic :
どんなデータでも直接入れられるprivateでアクセサメソッドを経由 :
setする時チェックが可能で、不正なデータは外部から格納できないようにする事ができる。
アクセサメソッドを使うことにより、受け入れられるデータだけを通す事ができる。つまり、フィルタリングできるということらしい。例えば、成績がA〜Eまであるとして、「A〜Eのアルファベットのデータのみ受け入れる」とすれば、F
Laravelのバリデーションエラーメッセージを5分で日本語化する
Laravelのバリデーションはエラーメッセージを$errorsから取り出すだけなので、非常に楽なのですが、デフォルトでは英語でしか表示されません。
![スクリーンショット 2019-11-23 8.29.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/472701/e279fed7-6293-671f-6de9-c3e06fd33c48.png)
ここはやはり日本語にしたいところ。
今回は5分でエラーメッセージを日本語化したいと思います。
##英語のエラーメッセージはどこにある?
そもそもこのエラーメッセージはどこからくるのでしょう?
`/resources/lang/en`の中の4つのファイルになります。
![スクリーンショット 2019-11-23 8.35.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/472701/62362331-0d09-3fe1-50d5-f4c610
PHP ファイル操作
PHPのファイル操作に関する備忘録です。
##1.html(input)からPHP側に送付するフォームを作る
“`html
“`
##2.PHP側の処理
“`php
Moodle 3.7 マニュアル – Apache
[原文](https://docs.moodle.org/37/en/Apache)
‘Apache HTTP server’ についての記事となります。
The Apache HTTP server is the software that (along with the PHP scripting language) ‘runs’ Moodle. Note that there are alternatives (e.g. IIS on Windows, Nginx on Linux, MacOS) but the Apache HTTP Server is very popular on all platforms.
Contents[1 Apache のインストール](#1-apache-のインストール)
[2 パフォーマンス](#2-パフォーマンス)
[3 Slasharguments](#3-slasharguments)
[4 SSL](#4-ssl)
[5 関連項目](#5-関連項目)# 1 Apache のインストール
Installers are av
OpenShiftによるJava EEアプリケーションのモダナイゼーションをやってみた(3)
# はじめに
架空の医療会社のExample HealthのOpenShiftによるJava EEアプリケーションのモダナイゼーションの3回目の投稿です。これまでの2回の投稿で私たちはExample HealthのOpenShiftによるJava EEアプリケーションのモダナイゼーションに成功しました。
– [OpenShiftによるJava EEアプリケーションのモダナイゼーションをやってみた。](https://qiita.com/daihiraoka/items/23cfaed7662d36ccc7ab)
ビジネスロジック用のOpen Libertyで実行されているJava EEアプリケーションをMiniShiftに移行– [OpenShiftによるJava EEアプリケーションのモダナイゼーションをやってみた(2)](https://qiita.com/daihiraoka/items/d27cf3b3281ddc5ce8f1)
患者用UI(ユーザーインターフェイス)のモダナイゼーションこれからは、その後の話になります。OpenShiftに移行した結果、
Xamppのsendmailとgmailでメール送信フォームを作りましょ
#gmailの二段階認証をクリアしてメールフォームを作りましょ
こんにちは~
php初心者で初めての投稿になります。
はじめの一歩でメールフォームを作りました。
あれ~言いつけ通りに作ったのに送信できなーいという初心者の方がきっといると思いまして、簡潔にまとめたいと思います。
ググると数多くの参考になる投稿があるので、ここではあまり細かい技術解説は行いません。
理屈を知りたい方は他を参考にしてください。(星の数ほど出てきます。)
ただ二段階認証のクリア方法まで一気通貫で書かれているサイトが無いので、
コピペでできる簡潔な解説をしたいと思います。“`html:メールフォーム(HTML)
大富豪から学ぶアルゴリズム
## はじめに
この記事ではトランプゲームのひとつである「大富豪」(「大貧民」とも呼ばれます)を例にアルゴリズムの設計パラダイムについて紹介しようと思います。~~石油王から最新のアルゴリズムについて学んできたレポートではありません。~~「バブルソートとか二分探索くらいは知ってるけど、アルゴリズムってどんな種類があるんだろう?」「そもそも●●●っていうアルゴリズムって普段使わないじゃん」みたいな人に向けた記事なります。
一つの問題を色々な角度からみることで別の手法が生まれるということが、この記事で伝われば良いと思います。
記事に載せているコードはPHPをベースにしていますが擬似コードなので、動作に必要な処理が抜けています。イメージのための補足にしてください。
また、この記事は社内勉強会で発表するにあたり急ぎで作ったものなので誤字・脱字・間違いや言い回しによって誤解を生む表現などがあります。
## あったほうがいい知識
– 一般的な大富豪のルール
– PHPのコードがなんとなく読めるレベルの理解度
– 計算時間*O(N)*の意味## 扱う大富豪
解説のため一般的な大富
php wsdlファイル自動生成
https://github.com/wsdl2phpgenerator/wsdl2phpgenerator
Laravel5.8でTraitsを利用してCSVファイルダウンロード
### 目的:
報酬のCSVファイルをアップロード後、別途経理に渡す給与明細のCSVファイルをダウンロードする処理を実装
![スクリーンショット 2019-11-22 15.11.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274686/24db1712-269e-47d3-dba7-b8b160d470ec.png)### 1. ルード設定
“`
Route::any(‘/csv/account/download/{ym}/{kind}’, ‘Csv\PaymentController@account’)->where(‘ym’, ‘[0-9]{4}-[0-1]{1}[0-9]{1}’);
“`### 2. Controllers
“`
namespace App\Http\Controllers\Csv;use App\Http\Traits\Csv;
use App\Models\CsvFile;
use App\Http\Controllers\Controller
var_dump, ddの省略表示を回避する方法
デバッグ時のメモ(..)
“`php:PHP
$array = [‘a’, ‘b’, ‘c’];
ini_set(‘xdebug.var_display_max_children’, -1);
ini_set(‘xdebug.var_display_max_data’, -1);
ini_set(‘xdebug.var_display_max_depth’, -1);
dd($array);
“`表示結果
“`
array:3 [▼
0 => “a”
1 => “b”
2 => “c”
]
“`
PHPがメインの経験者が、Pythonを始めて3日目の話
#はじめに
WEBは主に「JavaScript、PHP、HTML」で「PerlとCgi」はほんの少し程度しか書いて来なかったので、正直言ってPythonの位置付けが今でも良く分かっていないのです。Pythonをちょっと書き出したのが2019年11月20日で、書いてメモとしてアップして親切な方に色々とご指導を受けました。でもWEBアプリを作る方法が分からず、ネットで調べて気付いた事があります。
##PHPやJavaSvriptのようにPythonは動かない。
JavaScriptからPythonにデータを受け渡すプログラムを自分が管理しているVPSで動かしたいのです。これは正に他の方のパクリなのです。(引用させていただいた方はコードの直前に表記しました)**post.html で文字を送って receive_post.py で受け取りたい**のですが、cgiが動くだけのフォルダでは**「Internal Server Error」**となってしまいました。PHPばかりだとはこんな事が分からないのです。Pythonのコード名をブラウザでそのまま書いては駄目なのかなと、悩んで2日目でやっと動
Symfony 4.4 LTS のプロジェクトの作り方
# はじめに
Symfony 5系がリリースされていました。
symfonyでプロジェクトを作成する場合に、デフォルトで5系で作成されましたので、4系、またはLTSで作成する場合の手順をメモ書きします。# 作成の仕方
個人的には、開発環境にインストールをしたくないのですが、「郷に入れば郷に従え」ということで、symfonyアプリをインストールします。
https://symfony.com/download
その上、versionを指定でLTSとしてプロジェクトを作成します。
“`bash
symfony new –full –version=lts <ディレクトリ>
“`symfonyのローカルサーバなど利用する場合は、「symfony」コマンドは必須ですので、ダウンロードしておく方がよいですね。
composerで入れる場合は、バージョン指定で入れると思われます。
“`bash
composer create-project symfony/skeleton <ディレクトリ名> <バージョン>
“`バージョンは以下のサイトで確認をしてください。
herokuCLIを通したherokuの開始(入門者用)
# Herokuとは?
`Herokuは はアプリの構築、提供、監視、スケールに役立つクラウドプラットフォームで、アイデアを出してから運用を開始するまでのプロセスを迅速に進めることが可能です。また、インフラストラクチャの管理の問題からも解放されます。`–[公式フォムページ](https://jp.heroku.com/home)から抜粋補足するとHerokuはPaaS(Platform as a Service)として開発者はアプリケーション開発のみ集中すれば、アプリケーションの配布と運用が出来るということです。[GitHub](https://github.com)と連動されているのでgitにpushだけでデプロイが可能なのでCI/CDに適切なプラットフォームです。現在`Node.js`,`Java`,`PHP`,`Go`などの言語を対応しています。
# Heroku-CLIのダウンロード
Heroku-CLIはターミナル上でHerokuアプリをよりやすく扱えるツールです。
[こちら](https://devcenter.heroku.com/articles/heroku-
MACでPHPからMailHogにメールを投げてみる設定
ローカル環境で手軽にメールテストをしたい時、windowsだと「smtp4dev」を使っていたけでれど、MACやLinuxでないかなと探したら、MailHogがあった。
mailcatcherだとruby入れないとだけれど、MailHogはバイナリファイルなので便利。# MailHogインストール
`brew update && brew install mailhog`
実行
`mailhog`# sendmailの設定
設定ファイルを編集
`sudo vim /etc/postfix/main.cf`以下の行を追加
“`cf:main.cf
relayhost = [0.0.0.0]:1025
“`チェック
`sudo postfix check`# phpでテスト
以下のテスト用ファイルを作成“`php:mailtest.php
【PHP】学習メモ / 多次元配列
#多次元配列
多次元配列は、二次元配列とも呼ばれ配列の中に配列が入れ子になっている形式。###例1
“`php
$menu = array(
array(‘coffee’, 300),
array(‘juice’, 200),
array(‘cake’, 400)
);echo $menu[0][0].’:’.echo $menu[0][1].’円’;
echo $menu[1][0].’:’.echo $menu[1][1].’円’;
echo $menu[2][0].’:’.echo $menu[2][1].’円’;
“`
結果“`
coffee : 300円
juice : 200円
cake : 400円
“`
配列の中身“`php
$menu[0] //array(‘coffee’, 300)
“`
1つ目の[ ]は、配列のいくつめかを指す(インデックス0は1つ目)“`php
$menu[0][0] //coffee
$menu[0][1] //300
“`
2つ目の[ ]は、その配列のいくつ目の値かを指す。###その他い
PHPのoci_bind_by_name()で日付型項目が更新できない
# こんなエラーがでた
`Warning: oci_execute() [function.oci-execute]: ORA-01861: リテラルが書式文字列と一致しません in ~~~`
`INSERT`でも`UPDATE`でも全く同じ。その時のコードは以下(抜粋)
“`php5:PHP
oci_bind_by_name($stid, “:DATE_COLUM”, $value, -1, SQLT_CHR);
“`“`sql:SQL
INSERT INTO SCHEMA.TABLE(
DATE_COLUM
)
VALUES(
:DATE_COLUM
)
“`# [PHP.net – oci_bind_by_name](https://www.php.net/manual/ja/function.oci-bind-by-name.php)を、穴が空くほど見たが
日付型項目のtypeの指定はどうするかがわからず。おそらく`SQLT_CHR`なんだが
“`sql:SQL
VALUES(
TO_DATE(:DATE_COLUM)
)
“`
↑コ
簡単 STEPごとに作る自作MVC WebFramework PART2
# 自作 Php MVC Web Framework PART2
[PART1はこちら](https://qiita.com/sakunowman/items/b8f206661ab11af68d38)
完成したレポジトリのリンクを張っておきます。
developブランチで確認してください。
[レポジトリ](https://github.com/Saknowman/study_php_web_framework)前回までのSTEPは
– [STEP0: 環境構築](https://qiita.com/sakunowman/items/b8f206661ab11af68d38#step0-%E7%92%B0%E5%A2%83%E6%A7%8B%E7%AF%89)
– [STEP1: 全体像](https://qiita.com/sakunowman/items/b8f206661ab11af68d38#step1-%E5%85%A8%E4%BD%93%E5%83%8F)
– [STEP2: プロジェクト](https://qiita.com/sakunowman/items/b
GitHubにPushしたらGoogle Cloud BuildでCIが動いてSlack通知するやつ
## はじめに
[Google Cloud Build](https://cloud.google.com/cloud-build/?hl=ja)
Cloud BuildでPHPのアプリケーションでphpunit動かしてslackに通知するやつをやります
## 参考
GCP公式ドキュメント
* [GitHub でのビルドの実行](https://cloud.google.com/cloud-build/docs/run-builds-on-github?hl=ja)
* [サードパーティ サービスの通知の構成](https://cloud.google.com/cloud-build/docs/configure-third-party-notifications?hl=ja)## 準備
* Googleアカウント(要GCP無料トライアル)
* [Cloud SDK](https://cloud.google.com/sdk/docs/quickstarts?hl=ja) をインストールして `gcloud` コマンドが利用できるように
* 対象とするPHPアプリケーシ
LaravelにSassを3分で導入する
わい「css直打ちとかレガシーやし死んでも直接打ちたくないんじゃ」
わい「いつもみたいにSassでぐるぐる回したくないんか?はよ導入じゃい!」(山形弁)
なるほどたしかに。初心者なので、一番簡単な方法でお願いします。
##Composerの設定ファイルにSassを追加する
まず、Laravelのcomposer.jsonファイルですよね。
わい「composer.jsonとは、依存するパッケージを定義するためのファイルじゃ」
![スクリーンショット 2019-11-21 15.28.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/472701/88ff5b3d-19fc-5e00-31f6-93e533ce7dfa.png)
こんな記述がありますね。
“`
“require-dev”: {
“filp/whoops”: “~2.0”,
“fzaninotto/faker”: “~1.4”,
“mockery/mockery”: “~1.0”
Laravelでtextareaのmaxlengthと、ValidationRuleのmaxが改行によって判定ずれする
# 何が起こったか
例えば maxlength=10のtextareaがあったとして、このような入力をする。“`
1[改行]
2[改行]
3[改行]
4[改行]
5[改行]
“`“`html:form.html
(省略)
(省略)
“`
FormRequestを継承したRequestFileでこういうRuleを指定したとすると、弾かれてしまう。“`php:XxxRequest.php