- 1. Symfonyのコントローラにおけるパラメータ取りだし
- 2. VScode PHP/Laravel デバッガーを導入する
- 3. 【Laravelの環境構築】Laravelディレクトリ配下で、プロジェクトを作成しようとしたらエラー
- 4. HTMLが動く仕組み
- 5. ターミナルのインタープリターを使って文字列+連番を出したい!
- 6. PHP match式
- 7. いろんな言語での文字列操作の比較(VBA, Java, C#, PHP, Python, JavaScript)
- 8. contact form 7でメールアドレス確認用フォーム作成する方法
- 9. WordPressでカスタム投稿タイプ別にループする方法
- 10. kindle本セールの開催情報を、出版社くくりではなく一冊ごとにリマインダー通知を受け取りたくて作った
- 11. Cloud9で開発したLaravelプロジェクトを、ローカルで動かそうとした時につまった話
- 12. 【PHP】連想配列の指定カラムの値を別の配列に追加する方法
- 13. 【PHP8.2】PHP8.2の新機能
- 14. endroid/qr-codeを用いてphpでQRコード画像を生成する
- 15. PHPでのclassの使用
- 16. 【PHP】Youtube Data APIで動画のコメントの一覧の取得
- 17. 【PHP】基本文法まとめ(※随時追加予定)
- 18. 高知県のよさこい祭り2022に出るチームとスケジュールをjsonデータにする迄。
- 19. CakePHP4.3のフィクスチャファクトリとプラグインのユニットテスト
- 20. PHPでログインフォームを作成してみました。
Symfonyのコントローラにおけるパラメータ取りだし
# Symfonyのコントローラにおけるパラメータ取りだし
## Symfony\Component\HttpFoundation\Request のプロパティ
| アクセス | class | 説明 |
| — | — | — |
| ->query | ParameterBag | URLのクエリパラメータ |
| ->request | ParameterBag | POSTのリクエストパラメータ |
| ->attributes | ParameterBag | Routeアノテーションで定義したパスパラメータ |## Symfony\Component\HttpFoundation\Request のメソッド
| アクセス | 型 | 説明 |
| — | — | — |
| ->get(‘name’) | string | 値 |## ParameterBag で使用可能な取りだし方法
| アクセス | 型 | 内容 |
| — | — | — |
| ->all() | KV array | すべてのパラメータ |
| ->has(‘name’
VScode PHP/Laravel デバッガーを導入する
# 概要
– 「Xdebug」の導入方法をまとめる。なお、VScodeでの使用を考慮して導入する。
# 詳細
– 筆者のPCはMacである。
– Homebrewが導入され、使える状態になっている。
– MacのローカルにHomebrewを用いてPHPがインストールされている。# 方法
1. Xdebugのインストール
1. 下記コマンドを実行してXdebugをインストールする。“`bash
$ pecl install xdebug
“`1. 「Build process completed successfully」と表示されたことを確認する。こちらが出力されれば正常にインストールされている。
1. ターミナルに出力されているインストールログの最後から3行目に表示されている「Installing」の後に記載されているパスをメモする。筆者の出力例を下記に記載する。↓筆者の場合“`
Installing ‘/opt/homebrew/Cellar/php
【Laravelの環境構築】Laravelディレクトリ配下で、プロジェクトを作成しようとしたらエラー
## はじめに
以前、Laravelの環境構築に失敗し若干トラウマのようになっていたのですが(笑)
今回改めてチャレンジし、無事に完了することが出来ました!
全く同じ事象のエラーにぶつかる事は少ないかもしれないですが、
これから「Laravelを使って開発を進めていきたい」という方に向けて
少しでも参考になればと思います。### 【 構築前の環境 】
・ OS : macOS Monterey バージョン12.4
・ PHP : 7.4.30### 【 構築後の環境 】
・ OS : macOS Monterey バージョン12.4
・ PHP : 8.1.8
・ Laravel : 9.21.0### 【 前提条件 : 必須項目 】
・ Composerのダウンロード
https://getcomposer.org/download/
※こちらを実施しないと、そもそもComposerコマンドを実行出来ない
ということでエラーが返ってきます。
具体的には、以下を実行すれば大丈夫です。
“`
php -r “copy(‘https://getcomposer.org/ins
HTMLが動く仕組み
プログラミング学習を本格的に初めて1日目。
以下表題の問いについて分かったので、残しておきます。# どうしてブラウザ上でHTMLが動作するのか
結論、ブラウザには言語ソフト(解析エンジン)なるものが備わっており、
そいつがHTMLを解釈してブラウザに表示できたわけらしい。素朴な疑問だったけどわかってよかった。
ターミナルのインタープリターを使って文字列+連番を出したい!
# はじめに
仕事してて
“`
hoge430,hoge431,hoge432,hoge433,hoge434,hoge435,hoge436,hoge437,hoge438,
“`
みたいな文字列+連番みたいなのをぴゃぴゃっと出したいなーって思ったんですよ。使う用事があったんで。
で、こういうのってターミナルの各言語のインタープリターを使うとやれるんですけど、どうやったっけなー、と思いまして。
備忘録的な感じで。# Ruby
まずはRubyです。Rubyがこういうの一番簡単に行けたイメージあったので。
“`bash
$ ruby -e ‘(430..438).each do |i| print “hoge#{i.to_s},” end’
“`簡潔でいいですね。
ちなみにfor文使うとこうです。結局コレでも内部的には`each`が動いているんだそうです。
“`bash
$ ruby -e ‘for i in 430..438 do print “hoge#{i.to_s},” end’
“`@scivola さんからコメントで頂いたのですがこんな書き方も
PHP match式
# 概要
– PHPのmatch式について簡単にまとめる
# match式
– switch文の上位互換的な存在
“`
match 式の比較は、 switch 文が行う弱い比較ではなく、 厳密に値を比較(===) します。
match 式は値を返します。
match 式の分岐は、 switch 文のように後の分岐に抜けたりはしません。
match 式は、全ての場合を網羅していなければいけません。
“`– PHP8以降で利用可能
– `;`で終わらせる必要あり(これは「matchだから`;`で終わらせる必要がある」訳ではない。「matchは式である。式は;で終わらせる必要がある」ということ)# 使い方
“`php
match (評価したい変数) {
評価したい変数の値A => 評価したい変数が評価したい変数の値Aだった時の処理,
評価したい変数の値B => 評価したい変数が評価したい変数の値Bだった時の処理,
評価したい変数の値C => 評価したい変数が評価したい変数の値Cだった時の処理,
}
いろんな言語での文字列操作の比較(VBA, Java, C#, PHP, Python, JavaScript)
うちのような小さな会社が、受託案件を長年やっているといろんな言語の保守メンテをやる必要があるのですが
文字列操作、この言語でなだっけ?とよく忘れてしまいます…
よく使うものを中心に文字列操作をまとめていきます。
完全に個人的な忘備録です。主にVBAを中心に Java, C#, PHP, Python, JavaScriptについて書いていきます
[文字数の長さを取得する](#文字数の長さを取得する)
[文字列から指定文字数の文字を取得する(トリミング)](#文字列から指定文字数の文字を取得する(トリミング))
[文字列から左側の指定文字数の文字を取得する](#文字列から左側の指定文字数の文字を取得する)
[文字列から右側の指定文字数の文字を取得する](#文字列から右側の指定文字数の文字を取得する)
[文字列から指定文字を検索する](#文字列から指定文字を検索する)
[文字列の後ろから指定文字を検索する](#文字列の後ろから指定文字を検索する)
[文字列を置換する](#文字列を置換する)
[アルファベットの小文字を大文字に変換する](#アルファベットの小文字を大文字に変換する)
contact form 7でメールアドレス確認用フォーム作成する方法
自分の備忘録としてコード残しておきます。
functions.phpに記述
~~~ php
add_filter( ‘wpcf7_validate_email’, ‘wpcf7_validate_email_filter_confrim’, 11, 2 );
add_filter( ‘wpcf7_validate_email*’, ‘wpcf7_validate_email_filter_confrim’, 11, 2 );
function wpcf7_validate_email_filter_confrim( $result, $tag ) {
$type = $tag[‘type’];
$name = $tag[‘name’];
if ( ‘email’ == $type || ‘email*’ == $type ) {
if (preg_match(‘/(.*)_confirm$/’, $name, $matches)){ //確認用メルアド入力フォーム名を ○○○_confirm としています。
$tar
WordPressでカスタム投稿タイプ別にループする方法
# WordPressでカスタム投稿タイプ別にループする方法
以下カスタム投稿タイプ別にループ処理を作成する場合のコード。
投稿タイプ:news
表示する投稿数:5~~~ php
‘news’, /* 投稿タイプを指定 */
‘posts_per_page’ => 5, /* 表示するページ数 */
); ?>
~~~
このコードを利用すればindexページに複数種類のループを入れることも可能です。
kindle本セールの開催情報を、出版社くくりではなく一冊ごとにリマインダー通知を受け取りたくて作った
kindle本セールの開催情報を、出版社くくりではなく一冊ごとにリマインダー通知を受け取りたくて作ったのが、この
kindleセールチェッカーというスクリプトです。出版社のセール情報だと、欲しいと思っていた本がセール対象になっているのか、いちいちAmazonトップから検索をかけないとなりませんでした。
それが面倒くさかったので、キャンペーン情報をページ内からスクレイピングするファイルを作りました。
Cloud9で開発したLaravelプロジェクトを、ローカルで動かそうとした時につまった話
# はじめに
大学講義の最終課題で、Laravelを使用したWebアプリケーションを作成した。
参考にした書籍に従って、AWSのCloud9を使って開発を行なったが、教授に提出する際のデバッグのことを考え、ローカルで動くように改修しようとした際つまったことを記述する。# 問題点
Cloud9で開発していた際にはhttpsでの接続がされていたが、localhostではhttpでの接続をしなければならなかったために、php artisan serve –port=8080 をコマンドで入力してから接続すると、
“`
Invalid request (Unsupported SSL request)
“`
がコマンドラインに表示され、接続ができなかった。
# 解決策
/routes/web.php に
“`php
URL::forceScheme(‘http’);
“`
を追記したところ、httpsがhttpに問題無く変わった。
【PHP】連想配列の指定カラムの値を別の配列に追加する方法
## 概要
文字で書いてもつかみにくいので、まず2つの配列の図をご覧ください。
![ああああ.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2713225/b7a6ba03-9596-04af-7544-2784377c9754.jpeg)
・`$shop_lists` 【出荷先配列】果物・出荷先を定義
・`$origins` 【産地配列】果物・産地を定義
### やりたい事
`$shop_lists`に`$origins`の配列から産地を取得して追加したい。## 追記
こちらの記事で解説しました方法はまだまだ改善の余地のある書き方となっております。
下のコメント欄によりシンプルな書き方を載せて頂きました。
備忘録として筆者が書いた方法も残しておきたいのでそのまま残しますが、やり方の参考はコメント欄に乗せて頂きました方法をご確認ください。## 開発環境
Windows 10
XAMMP
PHP 7.4.29
Laravel Framework 8.83.15
※処理内容はバニラのphpで書
【PHP8.2】PHP8.2の新機能
[PHP8.2](https://qiita.com/rana_kualu/items/fc4b02e2daaf102aa92f) / [PHP8.1](https://qiita.com/rana_kualu/items/a6601b49e0591eb42200) / [PHP8.0](https://qiita.com/rana_kualu/items/fe7998fbe773544d5d25)
2022/07/19、PHP8.2が[フィーチャーフリーズ](https://wiki.php.net/todo/php82)しました。
言語機能に関わるような機能の追加・変更が締め切られたということです。
今後はデバッグを繰り返しながら完成度を高めていき、2022/11/24にPHP8.2.0がリリースされる予定です。というわけでPHP8.2で実装されるRFCを見てみましょう。
# RFC
## [Disjunctive Normal Form Types](https://wiki.php.net/rfc/dnf_types)
賛成25、反対1で受理。
[選言標準形](
endroid/qr-codeを用いてphpでQRコード画像を生成する
## 実現したいこと
phpのController内で任意の情報を持たせたQRコード画像を生成・保存する。## インストール
“`console
composer require endroid/qr-code
“`## 実装
“`$qrData“`にはQRコードの中に保持させたいデータを入れておく。“`php
use Endroid\QrCode\QrCode;
use Endroid\QrCode\Builder\Builder;
use Endroid\QrCode\Encoding\Encoding;
use Endroid\QrCode\ErrorCorrectionLevel\ErrorCorrectionLevelHigh;
use Endroid\QrCode\Label\Alignment\LabelAlignmentCenter;
use Endroid\QrCode\Label\Font\NotoSans;
use Endroid\QrCode\RoundBlockSizeMode\RoundBlockSizeModeMargin;
use
PHPでのclassの使用
# PHPでclassを学習した
基本的にフレームワークなんかを触りすぎてclassの概念を理解できていると言えなかったので備忘録として残しておく# 実際にclassを使ってみた
# クラスの作成
class Name {
# クラス内で使う変数の定義
private $name;# クラスを呼び出したときに呼び込まれる関数
public function __construct($name) {
$this->name = $name;
}public function getName() {
return $this->name;
}
}# インスタンスの作成
$name = new Name(“Taro”);
$get_name = $name->getName();
echo $get_name;コードが呼び込まれる流れ
① name = new Name(“Taro”)でインスタンスを
【PHP】Youtube Data APIで動画のコメントの一覧の取得
## できること
特定のYoutubeの動画のコメント欄の一覧の取得とcsvファイルへの書き込み## 事前準備
**ライブラリのインストール**
“`
composer require google/apiclient:^2.0
“`**APIキーの取得**
下記が参考になるかと思います。https://qiita.com/gentuki/items/dfd9f4febaec11851c06
https://developers.google.com/youtube
## ソースコード
“`
【PHP】基本文法まとめ(※随時追加予定)
PHPを学習している中で出てきた基本文法をまとめていきたいと思います。
# 基本形
– PHPを使うときは、``でくくる。
– 文末に必ずセミコロンをつける。“`php
“`
# 変数の四則演算
– 省略形の一覧まずは検索機能のコントローラーを作成します。
同時にコントローラーアクションも作成します。“`php
// 変数xに1を代入
$x = 1;// 四則演算の省略形
$x += 10;
$x -= 10;
$x *= 10;
$X /= 10;
$x %= 10;// 値が1のときだけの省略形
$x ++;
$x –;
“`# 文字列の連結
– 文字列の連結は、ドット「.」を使う
– 「.=」で省略して書ける“`php
$name = ‘佐藤’;echo ‘私の名前は’.$name.’です’;
// 結果: 私の名前は佐藤です// 省略形
$name .= ‘にしき’;
echo $name;
// 結果: 佐藤にしき
高知県のよさこい祭り2022に出るチームとスケジュールをjsonデータにする迄。
# 高知県のよさこい祭り2022に出るチームとスケジュールをjsonデータにする迄。
http://www.cciweb.or.jp/kochi/yosakoiweb/schedule/
1. 公式ページからよさこい祭りに出るチームとスケジュールを確認する。
2. 残念ながらチームとスケジュールデータは画像データだった為、OCR処理を行う。
3. OCR後、変換できなかった部分を手動修正する。
4. カンマ区切りのデータを作り下記のPHPコードでjsonファイルを生成する。尚、githubと自サイトに置いておきますのでjsonデータはご自由にお使いください。
https://yosakoi-video.com/yosakoi2022/
https://github.com/taoka-toshiaki/yosakoi2022-json-data
“`php:下記のPHPコード
CakePHP4.3のフィクスチャファクトリとプラグインのユニットテスト
引き続き、baserCMS5の開発にてCakePHP2系から4系への移行を進めています。
CakePHP4.3 より、これまでのフィクスチャマネージャーが非推奨になり、フィクスチャファクトリの利用が推奨されているようです。
色々と仕組みがややこしく、ドキュメントが少ないので記録しておきます。– [フィクスチャのアップグレード](https://book.cakephp.org/4/ja/appendices/fixture-upgrade.html)
従来は、テスト実行時にテーブルの作成とデータ登録がされていたのですが、フィクスチャマネージャーを利用しなくなった事により、テーブルの作成処理が `tests/bootstrap.php` でのマイグレーションでの生成に移行となっている様子。
つまり、 `bootstrap.php` にて、マイグレーションを実行しないとテーブルが作成されない仕様。まず、マイグレーションは `tests/bootstrap.php` 次のように実行します。
“`php
use Migrations\TestSuite\Migrator;
/
PHPでログインフォームを作成してみました。
# PHPでログインフォームを作ってみました
開発環境
・M1 MacBook
・MAMP
・PHP フレームワーク無し
・HTML5
・phpmyAdmin
・エディタ vscode## コード一覧 (会員登録は載せていません)
“`