PHP関連のことを調べてみた2022年01月13日

PHP関連のことを調べてみた2022年01月13日

myAssignとは

##こんなコードがあった!

“`php:sample.php
$menuAry = $this->getMenuForAPI();
myAssign(‘menuAry’,$menuAry); // Smartyにアサイン
“`

##上から読んでみよう!

####◆$menuAry
変数名だね!

####◆$this
Refers to current object
…よくわからん?わすれた。

####◆->
…アロー演算子というらしい

####◆getMenuForAPI()
とりあえずAPIだね!

####◆myAssign
SmartyにAssignする
次画面持越し変数にセットする
…画面で使るようにするのか?

##つまりどういうことだってばよ
 ・`getMenuAPI`の返却値を`$menuAry`に格納
 ・`$menuAry`の値を変数`menuAry`(Smartyとしての変数名の方)として定義を追加する

なので…

Smartyとしての変数を定義したい場合に使う関数

ということかな?!

元記事を表示

配列に値を追加する複数の方法

配列に値を追加するにはいくつかあるらしい。
あとでかく

元記事を表示

$thisってなんぞ?

あとでかく

元記事を表示

コメントアウトの@return voidってなんぞ

あとでしらべる

元記事を表示

blastengineを使ってPHPでメールを送信する

[blastengine](https://blastengine.jp/)はシンプルに使える開発者向けメールサービスを提供しています。何かと面倒なメール配信をシンプルに、かつ確実に送信先に届くようになります。

今回はblastengineを使ってPHPでメール送信を行うまでの流れを解説します。

## ユーザ登録する

blastengineにユーザ登録します。管理画面に入るためのユーザID、パスワードが手に入るので、ログインします(ユーザIDは後で使います)。

![getting-started-4.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197026/515541ad-b74e-e1e2-ac34-46d181ee2924.jpeg)

## 送信元ドメインのSPFを設定する

送信元として利用するドメイン(自分で持っているもの)の設定をします。これは任意のドメイン管理サービスで設定できますが、TXTレコードに以下のSPFを追加します。

“`
txt @ v=spf1 includ

元記事を表示

1054 unknown column ‘email in ‘field list’はこれで解決した

#今やっていること
Laravel6を使って簡単な掲示板機能の作成中。
最初の新規登録でつまりました。

##表示されたエラー
“`
SQLSTATE[42S22]: Column not found: 1054 Unknown column ‘email’ in ‘field list’
“`
このエラーの解決方法はいろんな記事で読みましたが、イマイチ解決できず。
新規登録の機能を実装しているRegisterControllerを見直してみました。

##解決方法
“`php:RegisterController.php
public function register(Request $request){
if($request->isMethod(‘post’)){
$data = $request->input();
$validator = Validator::make($data,[
‘username’ => ‘required|max:30’,

元記事を表示

sendgrid php で smtp 送信 ライブラリ無しでもOK

今回は cakeemail を使用。
メールサーバーってマジで不安定だから大変。
しかも最近はAPI送信とかになっているからsmtpの送信方法が無くて困る。

以下の方法ならアカウントを設定するだけだから
ライブラリとか必要無しで送信できるので便利。

ということで早速方法。

sendgridを利用

https://sendgrid.kke.co.jp/docs/API_Reference/SMTP_API/integrating_with_the_smtp_api.html

まずはメールの設定です

“`

public $default = array(
‘host’ => ‘smtp.sendgrid.net’,//固定
‘port’ => 587,//固定
‘transport’ => ‘Smtp’,//固定
‘username’ => ‘apikey’, //固定
‘password’ => ‘SG.Uxxxxxxxxxxx229’,//要変更 パスワード
‘from’ => ‘you@localhost’,//任

元記事を表示

Slim4 に dotenv と migration の機能を追加していい感じにする

## 環境
* Slim4 (Skelton じゃない方だが、どっちでも行けそう?)
* PHP7.4 (or later)
* MySQL5.7 (MariaDB)
* dotenv ライブラリ: `vlucas/phpdotenv@5.4.1`
* マイグレーションライブラリ: `robmorgan/phinx@0.12.9`

## dotenv ライブラリの準備
PHP 向けの dotenv ライブラリは2種類くらいメジャーなのがあるが、今回は `vlucas/phpdotenv` を採用した。

### インストール
“`sh
composer require vlucas/phpdotenv
“`

### 設定ファイル作成
“`sh
touch .env
“`

自分の環境に合わせて、設定内容を書く。

“`/.env
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=database
DB_USERNAME=username
DB_PASSWORD=password
DB_CHARSET=utf8
“`

## マイグレー

元記事を表示

DQLで日付関数とGROUP BY

DQLでDATEカラムをGROUP BYする方法がわからなかったので調べた

#DoctrineExtensionを入れる
https://github.com/beberlei/DoctrineExtensions
でSQLの関数を追加

“`
composer require beberlei/doctrineextensions
“`
`configs/packages/doctrine.yaml`に追加

“`
doctrine:
orm:
dql:
string_functions:
MONTH: DoctrineExtensions\Query\Mysql\Month
YEAR: DoctrineExtensions\Query\Mysql\Year
DATE_FORMAT: DoctrineExtensions\Query\Mysql\DateFormat
“`
#QueryBuilder
例えば`NewsPost`エンテ

元記事を表示

【初心者が解く】Windows10環境でLaravel sailインストールのエラーが起きる時

初心者の自分なりに解決方法を見つけたので、メモ用として記載しておきます。

OS: Windows10
にてエラーを確認(macは持っていないので同様の処理でうまくいくかは不明です。)

症状
インストール時に下記のエラー表記が出る

“`
failed to solve: rpc error: code = Unknown desc = executor failed running [/bin/sh -c apt-get update && apt-get install -y gnupg gosu curl ca-cer
tificates zip unzip git supervisor sqlite3 libcap2-bin libpng-dev python2 && mkdir -p ~/.gnupg && chmod 600 ~/.gnupg && echo “disable-ipv
6” >> ~/.gnupg/dirmngr.conf && apt-key adv –homedir ~/.gnupg –k

元記事を表示

Mysqlで躓いた時 確認するよ

Mysqlの学習で躓いた時に見ていたサイト達です
お世話になりました。

Mysqlのインストール手順から初期設定まで
参考サイト: https://webkaru.net/mysql/windows-env/

ターミナルにてSQL文の発行
参考サイト:https://webkaru.net/mysql/windows-sql-query/

【エラー】
PATHが通っていない時
参考サイト: https://nichi-petit.com/entry/path-error

※見つけ次第追記していきます。

元記事を表示

Paiza出力は同じなのにエラーになる原因

#Paiza提出前に確認すること
最近Paizaを始めた者です。
出力は同じなのにエラーになったので原因を探ったところ簡単なミスでした。
しかし同じミスで解決できてない方もいるかもなので共有しておきます。

##実際の処理
“`php
//期待される出力
3 3 7 3 7 5 8 3 5 3
//出力処理
foreach($posts as $post){
echo $post.’ ‘;
}
//実際の出力
3 3 7 3 7 5 8 3 5 3
“`

こちらでエラーになりました。
結論から原因は最後の数値の後ろにもスペースが入っているというものでした。
Paizaさんも提出前にちゃんと
「期待する出力と出力結果が同じに見えるのに失敗になる場合、半角スペースや改行の数が異なっていると考えられます。
余分な半角スペースや改行がないかを今一度ご確認ください。」

と教えてくれていました。しっかり最後まで文章を読まなくては。。。
##解決策
一応今回のケースの解決策も載せておきます。

“`php
//期待される出力

元記事を表示

テスト投稿

[テスト](https://taco3suisui.com “https://taco3suisui.com”)
 リンクを貼ってみた。

元記事を表示

さくらでcronの実行

![スクリーンショット 2022-01-11 17.43.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/417196/f9fa2258-6bf0-da6c-73fc-8dc74652005f.png)

## さくらサーバーでcronの設定を行いました。
– 実行コマンドについて
– cd /home/アカウント/www/app/batch;
– これで、対象のディレクトリまで移動します
– 今回はphpで実行したいので、 /usr/local/bin/phpがプログラムのコマンドパスになります([参照1](https://help.sakura.ad.jp/206206041/))
– 黒塗り.phpが実行するファイルになります
– 実行日時は上記の設定だと2分毎に実行されます

参考
https://usortblog.com/sakuracron/

元記事を表示

【Laravel,MySQL】MySQLへのinsert速度について調べてみた

#概要
本記事は、[PHPフレームワークLaravel入門 第2版](https://www.amazon.co.jp/PHP%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AFLaravel%E5%85%A5%E9%96%80-%E7%AC%AC2%E7%89%88-%E6%8E%8C%E7%94%B0-%E6%B4%A5%E8%80%B6%E4%B9%83/dp/4798060992/ref=pd_lpo_1?pd_rd_i=4798060992&psc=1)で学習している中の疑問・つまづきの備忘録です。

今回はLaravelからMySQLへのinsert速度について調べたことをまとめます。
なお、[PHPフレームワークLaravel入門 第2版](https://www.amazon.co.jp/PHP%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AFLaravel%E5%85%A5%E9%96%80-%E7%AC%AC2%E7%

元記事を表示

初めてのコードレビューで指摘されまくったコメントの書き方を改善する

先日初めてコードレビューをしていただけました。
その際コメントの書き方についての指摘が多かったので、指摘事項を備忘録としてまとめておきたいと思います。

##はじめに
コメントを書く際の注意点については「[プログラマが知るべき97のこと](https://www.amazon.co.jp/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E%E3%81%8C%E7%9F%A5%E3%82%8B%E3%81%B9%E3%81%8D97%E3%81%AE%E3%81%93%E3%81%A8-%E5%92%8C%E7%94%B0-%E5%8D%93%E4%BA%BA/dp/4873114799/ref=sr_1_1?adgrpid=121577874136&hvadid=536041735659&hvdev=c&hvqmt=e&hvtargid=kwd-1268462898664&hydadcr=23104_13451920&jp-ad-ap=0&keywords=%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9

元記事を表示

【Laravel,MySQL】LaravelからDBへの接続エラーの原因と解決策

#概要
本記事は、[PHPフレームワークLaravel入門 第2版](https://www.amazon.co.jp/PHP%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AFLaravel%E5%85%A5%E9%96%80-%E7%AC%AC2%E7%89%88-%E6%8E%8C%E7%94%B0-%E6%B4%A5%E8%80%B6%E4%B9%83/dp/4798060992/ref=pd_lpo_1?pd_rd_i=4798060992&psc=1)で学習している中の疑問・つまづきの備忘録です。

今回はLaravelからDBへの接続エラーの原因と解決策についてまとめます。
なお、[PHPフレームワークLaravel入門 第2版](https://www.amazon.co.jp/PHP%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AFLaravel%E5%85%A5%E9%96%80-%E7%AC%AC2%E7%89%88

元記事を表示

PHP8.1でPECLが使えなかったので修正した話

PHP8.1にバージョンアップしpeclでインストールを行おうとした際に発生した問題です.解決方法まで書いていきます.

### 基本情報
“`
$ cat /etc/os-release
NAME=”Ubuntu”
VERSION=”20.04.3 LTS (Focal Fossa)”
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME=”Ubuntu 20.04.3 LTS”
VERSION_ID=”20.04″

$ php -v
PHP 8.1.1 (cli) (built: Dec 31 2021 07:26:20) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.1, Copyright (c) Zend Technologies
with Zend OPcache v8.1.1, Copyright (c), by Zend Technologies
“`

## 問題
MongoDBとの接続のためPHPのドライバーを入れる際に発生しました

“`bash
$ sudo pecl

元記事を表示

laravelシンボリックリンクしても画像が表示されない

# 画像アップロードの仕方
laravelでは画像をアップロードして保存する際に

“`php
public function store(Request $request) {
$filename = $req->imgpath->getClientOriginalName();
$img = $req->imgpath->storeAs(”, $filename);
}
“`

のようにして保存できるのですが、その時のフォルダは

“`
storage/app
“`
になっているようです。僕が保存したときは上記のフォルダに保存されました。

#アップロードした画像を表示
表示はとても簡単です。

“`php

“`

これで普通なら表示できるのですが、何も表示されないと思います。
理由は簡単`asset関数`はpublicフォルダを参照するからそもそもフォルダ違うよねということです。

ではどうするのか。
シンボリックリンクをしてあげましょう。

#シンボリックリン

元記事を表示

【PHP】htmlspecialchars()の使い方

#背景
会員登録画面を作成中に出てきたので、備忘録かねて作成しました。
macOS : Monterey
PHP : 8.1.1

#エスケープ処理について
htmlspecialchars()はエスケープ処理を行う関数であるが、まずエスケープ処理ってなんだってなったので調べてみた。
マークアップ言語のHTMLに限らず、プログラミング言語ではその言語にとって特別な意味を持つ記号があり、それをエスケープシーケンス(エスケープ文字、特殊文字)と言う。例えばHTMLでは < とか > とかが該当する。
記事に文章を入力するときなどに < や > を使おうとすると、通常これらの文字は、HTMLを動かす為に必要な記号だと判断され上手く表示されない。
そのため、入力フォームなどで < や > を文字として変換するための処理が用意されており、その処理のことをエスケープ処理という。

#htmlspecialchars()の使い方
“`php:htmlspecialchars()の引数
htmlspecialchars(変換したい文字列, フラグ(変換するルールみたいなもの), エンコード, 既存

元記事を表示

OTHERカテゴリの最新記事