- 1. PHPでselectBox作ってみた
- 2. dockerでphpのサーバーを立てる
- 3. 【5枚目】おっさんが入門CakePHP (動画第6回:新規登録の解説)
- 4. Laravel Sail 導入時に発生したエラーと解決方法
- 5. 【実務で使えるLaravel】取得したデータを配列に追加する方法
- 6. [PHP] GoogleAdsAPIでSearchした結果の総件数を取得する方法
- 7. 【PHP】少数切り上げのやり方
- 8. 【PHP】多次元配列の重複を削除
- 9. Laravelでイベントを用いてメールを送信する
- 10. Laravel5.5を8.58にアップグレードした際の手順メモ
- 11. laravel5.5で、Authを使ったログイン時アクセスしたい画面にリダイレクトする方法
- 12. Laravelログイン認証のリダイレクトについて
- 13. LaravelのRedisでワイルドカードのパターンに一致するキーを一括削除する
- 14. composer installした際、メモリエラーになる場合の対応
- 15. PHP(Laravel) 空白を含む検索
- 16. Laravel 8でテキストを改行させ、埋め込まれたJSを実行させない方法。
- 17. PHP で定数を使ってみる
- 18. S3バケットを作成してEC2と接続する【備忘録】
- 19. 【PHP】三項演算子の結果を文字列結合したいが上手くいかない
- 20. Laravelを使ってチームで開発する前に決めておくべきコーディングルール
PHPでselectBox作ってみた
##PHPでselectBox作ってみた
タイトル通りです。
“`php
“;
foreach($busho_list as $key => $busho){$selected = “”;
if($key === $select_option){
$selected = “selected”;
}
$select_box .= ““;
}
$select_box .= ““;echo $select_box;
“`
変数$select_optionにデータベースから取得した値を代入することでデフォルトの選択を動的に変更することができます。
$busho_list自体もマスタなどか
dockerでphpのサーバーを立てる
カレントディレクトリにphpファイルを置く。
“`index.php
PHP Test
Hello World‘; ?>
“`apacheが含まれているdockerコンテナを動かす。
“`
docker run -it –rm –name php -p 80:80 -v $PWD:/var/www/html php:apache
“`サーバーが立つ。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/396969/05423136-a2ba-c02e-45c7-9243910d854c.png)
【5枚目】おっさんが入門CakePHP (動画第6回:新規登録の解説)
ケーキも5枚目に成ってかなり胃もたれしてきてます。。。
動画再生(2倍で)娘に又それかよって言われながら進めてます。今回の動画でやること
・新規登録の動きを確認
・Code解説 新規登録画面を開く
・Code解説 ユーザ登録をする前回配置したソース類を使用してお勉強するので今回はほ見るだけ。(ソースは追いかける)
いつも通りXAMPPからApacheとMySQLを開始して
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/102625/490a1040-332e-f875-ba86-70471027628f.png)WEBブラウザで画面動作確認
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/102625/d8eb87dc-513c-2bc3-c467-c68b5a95deb9.p
Laravel Sail 導入時に発生したエラーと解決方法
Laravel Sailを使ってLaravelをインストールしてみようとしたときのうっかりミスとその解決方法。
## うっかり編
[公式ページ](https://laravel.com/docs/8.x/installation#getting-started-on-macos)に書いてあるインストレーションを進める。“`bash
$ curl -s “https://laravel.build/example-app” | bashdocker: Error: remote trust data does not exist for docker.io/laravelsail/php80-composer: notary.docker.io does not have trust data for docker.io/laravelsail/php80-composer.
See ‘docker run –help’.
bash: line 16: cd: example-app: No such file or directoryPlease provide yo
【実務で使えるLaravel】取得したデータを配列に追加する方法
実務の学びを記事にします。
取得したデータを配列に追加する方法です。
“`php
$hoge = array();
$categories = $this->category->findCategories();
foreach ($categories as $category) {
array_push($hoge, $category->category_name);
}
“`$categoriesはコレクションでカテゴリーデータを何件か取得するロジックです。
まず、$hoge = array()で空の配列を用意し、array_pushで配列の最後に要素を追加できます。“`
array:3 [▼
0 => “85HCKP3sfL”
1 => “XOF4msHVdd”
2 => “ir10PRKDGp”
]
“`こんな感じで配列にカテゴリーの名前を追加できます。
もう一つプラスαで覚えておくべきは、in_arrayです。
“`php
if
[PHP] GoogleAdsAPIでSearchした結果の総件数を取得する方法
例えば広告グループをSearchする場合、GoogleAdsAPIのリファレンスやExampleを見ても、API通信のResponseから広告グループ名やResourceNameを取得する方法はすぐわかりますが、広告グループがいくつあるかを取得する方法は探しづらかったので、他の方がこんなことに時間かけなくていいようにという意味も込めてメモ。
#どこに総件数が入っているのか?
結論から言えば、SearchGoogleAdsResponse クラスに、「total_results_count」というプロパティがあり、これが取得結果の総件数にあたります。URL:https://developers.google.com/google-ads/api/reference/rpc/v8/SearchGoogleAdsResponse
じゃあ公式のExampleを少しいじって、このプロパティを取得しにいけばええやろがいと思われるかもしれませんが、GoogleAdsAPIのリファレンスばかり見ているとその方法にたどり着けないです。
#公式のExampleを見てみよう
私がやったときはアカウ
【PHP】少数切り上げのやり方
“`PHP
= 5:
$colspan = 3;
$rowspan = ceil($count / 3);
break;
}
【PHP】多次元配列の重複を削除
“`PHP
[ ‘id’ => 10, ‘language’ => ‘PHP’, ‘framework’ => ‘Laravel’],
1 => [ ‘id’ => 20, ‘language’ => ‘Java’, ‘framework’ => ‘Spring’],
2 => [ ‘id’ => 30, ‘language’ => ‘JavaScript’, ‘framework’ => ‘Vue.js’ ],
3 => [ ‘id’ => 40, ‘language’ => ‘Ruby’, ‘framework’ => ‘Ruby on Rails’ ],
4 => [ ‘id’ => 40, ‘language’ => ‘Ruby’, ‘framework’ => ‘Ruby on Rails’ ],
5 => [ ‘id’ => 40, ‘language’ => ‘Ruby’, ‘framework’ => ‘Flutte
Laravelでイベントを用いてメールを送信する
## 概要
Laravelのイベントとリスナーを使って、フォームからの問い合わせが来たときに、通知メールを送信する処理を実装します。## 実行環境
https://qiita.com/ucan-lab/items/5fc1281cd8076c8ac9f4上記の記事を参考に、GitHubのテンプレートリポジトリから環境を構築しています。
Laravel6.*
## 実装の大まかな流れ
1. 環境変数にメール送信に必要な情報を設定
2. メール送信用クラスの作成
3. メールのViewを作成
4. イベントの作成
5. リスナーの作成
6. イベントとリスナーを紐づけ
7. イベントの発行### 環境変数(.env)に必要情報を設定
“`env:.env
MAIL_DRIVER=smtp
MAIL_HOST=XXXXX.jp //サーバのドメイン名やIPアドレス
MAIL_PORT=587 //ポート番号は各環境に依存
MAIL_USERNAME=XXXXX@XXXXX.co.jp //メールで利用するユーザ名
MAIL_PASSWORD=XXXXX //メールで利
Laravel5.5を8.58にアップグレードした際の手順メモ
PHP のWebアプリケーションフレームワーク **Laravel** を最新バージョンに更新しました。
ほぼ個人的な備忘録なので解説はありません。環境に合わせて読み替えて下さい。# 環境
Red Hat Enterprise Linux のリビルド版だった CentOS のサポート終了に伴い、Laravel移行と同じタイミングで Ubuntu に乗り換えています。“`:旧環境
$ cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)$ php -v
PHP 7.2.3 (cli) (built: Feb 28 2018 08:39:13) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies$ php artisan –version
Laravel Framework 5.5.50
“`“`:新環境
$ cat /etc/o
laravel5.5で、Authを使ったログイン時アクセスしたい画面にリダイレクトする方法
さっと書きます。
今回実装したいのは、
ログインが必要なページにアクセスした際ログイン画面にリダイレクト
↓
ログイン
↓
アクセスした元のURLにリダイレクトされるといった簡単な内容です。
## すぐ答えです。以下です。
Laravel 5.5の場合、LoginController.phpを更新するだけで次のコードが機能しました
“`php
public function showLoginForm()
{
session([‘link’ => url()->previous()]);
return view(‘auth.login’);
}protected function authenticated(Request $request, $user)
{
return redirect(session(‘link’));
}“`
セッションに残して、それにリダイレクトさせる簡単なコードで実装できました。
参考文献
https://www.it-mure.jp.net/ja/php/laravel-5%E3%83%AD%E3
Laravelログイン認証のリダイレクトについて
#はじめに#
Laravelを使うと簡単にログイン機能を実装できますが、反面、完成されすぎていてカスタマイズするには結構調べないといけません。大した内容ではありませんが、今回はそんな中でもリダイレクトについて備忘録として残して行きたいと思います。#ログインしていないユーザーをリダイレクト#
まずは、ログインしていない状態で、あるページにアクセスしようとするとログイン画面にリダイレクトする方法をご紹介します。ログイン前に表示させたくないコントローラーに下記のように書いてください。“`HomeController.php
public function __construct()
{
$this->middleware(‘auth’);
}
“`これだけでOKです。何が起きているのかは正直よく分かりませんが、とにかくこれでログイン画面へリダイレクトされるようになります。認証に関わるものはMiddlewareで定義されています。ちなみに、リダイレクト先を変更する場合もMiddlewareで変更することが出来ます。
“`App\Http\
LaravelのRedisでワイルドカードのパターンに一致するキーを一括削除する
Redisではキーにワイルドカードを使って一括削除するコマンドがありません。
今回はLaravel5.8でRedisのキーをワイルドカードを使って、一括削除する方法を共有します。## 一括削除する方法(prefixあり)
“`php
$keyPattern = ‘hogehoge_*’;
$keys = array_map(function ($key) {
return str_replace(config(‘database.redis.options.prefix’), ”, $key);
}, Redis::keys($keyPattern));
if (!empty($keys)) {
Redis::del($keys);
}
“`複数のコネクションを使っていてそれぞれprefixが違う場合は、
`config(‘database.redis.options.prefix’)`の部分を適宜修正してください。Laravel5.8からはデフォルトでprefixが指定されているので上記のprefixありで実行してください。
## prefixを
composer installした際、メモリエラーになる場合の対応
docker環境で`composer install`した際、メモリエラーになる場合の対応。
“`
PHP Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes) in phar:///usr/bin/composer/src/Composer/DependencyResolver/Solver.php on line 223
Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes) in phar:///usr/bin/composer/src/Composer/DependencyResolver/Solver.php on line 223
“``COMPOSER_MEMORY_LIMIT=-1`を追加して`composer install`を実行する。
“`
COMPOSER_MEMORY_LIMIT=-
PHP(Laravel) 空白を含む検索
# はじめに
空白区切りで複数の検索をかけれるようにしたい。【例】 ”Ruby PHP JavaScript” → `Ruby` `PHP` `JavaScript`
# 条件
“`bash
mac OS “11.2.3 Big Sur”
Laravel Framework “6.20.27”
PHP “8.0.7”
“`# 最終的なコード
`Controller`と`Model`に分かれています。
Controllerで使用している関数をModelの方で定義しています。“`php:Controllers/SearchController.php
class SearchController extends Controller
{public function __construct(Search $search)
{
$this->search = $search;
}public function index(Request $request)
{
$query = Recipe
Laravel 8でテキストを改行させ、埋め込まれたJSを実行させない方法。
“`
{!! nl2br(e($post->body)) !!}
“`
e()で文字実態参照に変換。
nl2br()で改行コードを改行タグに変換。
{!! !!}でbrタグで改行させるようにする。(文字実体参照への変換を無効にする)
PHP で定数を使ってみる
##PHPで定数を使ってみた
ちなみに定数とは
>const キーワードか、 define() 関数を使うことで、定数を宣言することが出来ます。 define() を使えば任意の式を使って定数を定義できますが、 const キーワードを使う場合には、 次の段落で説明する制約があります。 定数が一度定義されると、 変更または未定義とすることはできません。
>>https://www.php.net/manual/ja/language.constants.syntax.phpみなさんPHPで定数って使ってますか??
私は古いシステムを修正することが多いのですが、定数を使っているプログラムは非常に少ないです。(あくまで私の偏見ですが)私は師匠に定数は積極的に使っていけと習ったので、プログラムの先頭には定数が並んでいる場合が多いです。
DBに保存される際にINT型で保存されるけれど、画面に出力される時は日本語で表示してね、といった文言は是非定数を使ってあらかじめ定義しておきたいですね。
例)曜日、旧暦、性別など“`php
S3バケットを作成してEC2と接続する【備忘録】
#はじめに
前記事([EC2サーバー構築の概要【備忘録】](https://qiita.com/namikis/items/9e7c71a1e920bd61d09c))で作成したEC2インスタンスと、AWSストレージサービスであるS3をPHPで接続した時に調べたことの備忘録。
AWSアカウントを作成し、EC2インスタンスのセットアップが完了していることが前提です。
具体的な概要・用語についての記事であり、具体的な手順については割愛しています。#目次
– 全体の流れ
– 項目別の詳細
– yumとrpm
– 参考文献#全体の流れ
####S3セットアップ
1. S3バケット作成
1. IAMロール作成
1. EC2インスタンスにIAMロールを割り当て
1. エンドポイントの作成####AWS SDK for PHP でS3に接続
5. PHPのバージョンアップ
6. Composerインストール
7. AWS SDK for PHPをインストール#項目別の詳細
####S3バケット作成
手順通りやればいいので割愛。
####IAMロール作成・IAMロールを割り当て
【PHP】三項演算子の結果を文字列結合したいが上手くいかない
PHPで、三項演算子の結果を文字列結合して表示したいことがあり、次のようにコードを書いてみて『結果:Ok』を期待したけれど、実際に出力されるのは『Ok』のみ。
「結果:」の形跡はまったくなく不思議。いったいどこにいってしまったのだろうか。“`PHP
$hoge = 3;
echo ‘結果:’. ($hoge == 3) ? ‘Ok’ : ‘Ng’;
>Ok
“`
# とりあえずググってみた
「teratail」で質問と回答を見つけた。https://teratail.com/questions/3894
>(’答えは’.0) ? ‘正解!’ : ‘間違い!’;
>(‘答えは、0’) ? ‘正解!’ : ‘間違い!’;
>(TRUE) ? ‘ 正解!’ : ‘間違い!’;
>
>
>なので、三項演算子の部分を()で囲みましょう。「三項演算子の部分を()で囲み」で解決なのだけれど、少し丁寧に理解しておこうと思う。
# 1つ1つ動きをみていく
読み解くには「演算子の優先順位」が分かればOKです。https://www.php.net/manual/ja/languag
Laravelを使ってチームで開発する前に決めておくべきコーディングルール
#はじめに
現在Laravel × Vueを用いてサービス開発をしており、チームとしては実装担当4名でプロジェクトを進めています。開発を進めていく中で、初めのうちに決めておけばよかった!ということがあったので当記事で共有しておきます。
コーディングルールを決めておけば、プログラムの統一性が増し可読性の向上、バグの減少、命名にかける時間の削減に繋がりますので決めておくことをおすすめします。#決めておいたほうがいいこと
+ メソッドや変数の命名規則
+ 各ファイルの役割
+ ディレクトリ構成
+ リレーションの命名規則
+ routeの記述の仕方
+ コントローラの使い方
+ リソースコントローラでモデル結合ルート(ルートモデルバインディング)を使うかどうか### メソッドや変数の命名規則
命名規則において以下の形式がよく用いられます。| 命名規則 | 書き方の例 |
|:———–|————:|
| キャメルケース | userProfile |
| スネークケース | user_profile |
| パスカルケース(アッパーキャメル) | Us