- 1. php.iniファイルが作成できない(Mac)
- 2. 【初参加】カンファレンス参加はいいぞ【PHPカンファレンス】
- 3. postされた日付をexplode関数で区切りcheckdate関数でバリデーション
- 4. AWS Amazon LinuxでWordPressを立てた時にカスタムパーマリンクが機能しない時の対処法
- 5. PHPカンファレンス関西2024に行ってきました
- 6. [Laravel / Fortify] 認証処理を可視化、カスタマイズしよう!
- 7. 【Drupal】PHP構成の設定
- 8. PHPカンファレンス 関西 2024
- 9. 【PHP】マイナーフレームワーク「Flow」を試してみる~セッション編~
- 10. 【PHP】PHPで使うfor文って何?
- 11. PHP入門 ~データベース接続~
- 12. サイボウズGaroonでSOAP APIを使ってPHPでリクエストを送る
- 13. laravel 他のフィールドの値によって必須としたいときのバリデーション
- 14. Laravel API Resourceのテスト
- 15. LEMP環境 Laravel Nginx Mysql PHPをDockerで構築してみた
- 16. CMSで作るモダンECサイト
- 17. 【PHP】代入演算子の返り値が変わることがある
- 18. php nginx mysqlをDockerで構築する
- 19. Google.Calendar を ローカルで利用する為の方法について
- 20. PHPでZIPファイル内のCSVファイルをそのまま読み取る
php.iniファイルが作成できない(Mac)
あるPHP講座でphp.iniファイルの作成をするところで沼ってしまったので、備忘録として対処法を書いておきます。
– ### やりたかったこと
**php.ini(PHPの環境設定ができるファイル)をターミナルで作成したい。**動作環境はMacです。
Macに標準搭載されたPHPにはphp.iniファイルが作成されていないため、“/etc/php.ini.default“を“sudo cpコマンド“でコピーしてやります。
念のためまずは、“lsコマンド“でphp.iniファイルが作成されていないことを確認しました。
“`
$ ls /etc/php.ini
ls: /etc/php.ini: No such file or directory
“`
↑No such fileと出ていれば大丈夫です。:::note warn
/etcフォルダ以下の編集では管理者権限が必要なので“sudoコマンド“を使います。
:::– ### 問題点
**php.iniファイルが作成できない!**“cpコマンド“に2つの引数(コピー元・コ
【初参加】カンファレンス参加はいいぞ【PHPカンファレンス】
# はじめに
どうもこんにちは、イトイ(@Itoi)です。エンジニアになって1年半、ずっと憧れていたことがありました。
それは「**大きなエンジニアイベントに行ってみたい!**」というミーハーな内容です。昨年はAWSのイベントやRubyKaigiもありましたが、どうしても都合がつかず…
そんな私に待望のイベントがありました。それは **PHPカンファレンス関西2024**!!(2024/02/11(日) 開催)
こちらに参加してきました!PHPカンファレンスは思っていた以上に楽しく、実りある経験となりました。
この記事で、カンファレンス未体験の方に私が感じた魅力を少しでも伝えられればと思います。
(そして参加者が増え、カンファレンス文化がもっと盛り上がりますように!)## 魅力1 ノベルティがもらえる
いきなり現金な内容です笑
多くのカンファレンスでノベルティがもらえると思います。
今回はトートバッグに色々入っていて、中を見るのがワクワクしました。もう1点、参加景品として、参加者のアイコンを載せたトレーディングシールを配っていました。
持っている方は名刺がわり
postされた日付をexplode関数で区切りcheckdate関数でバリデーション
postされた日付などをcheckdate関数を使用してバリデーションを行いたい時にexplode関数を使います。
## 使ってみる
checkdate関数は引数1に月、引数2に日、引数3に年を渡さなければいけません。なので、explode関数を使用してcheckdate関数に合う形にします。
“`php
$date = $_POST[‘date’]; //’2024-02-12’が入っている
$array_date = explode(‘-‘, $date);
“`
引数1に何事に区切るか(上記では-)、引数2に区切りたい文字列が入った変数を指定します。
var_dumpで出力して確認していきます。
“`
array(3) { [0]=> string(4) “2024” [1]=> string(1) “2” [2]=> string(2) “12” }
“`## checkdate関数で正しい日付かチェック
checkdate関数で正しい日付化チェックしていきます。先ほど書いたようにcheckdate関数は引数1に月、引数2に日、引数3に年を渡さなければいけません。
AWS Amazon LinuxでWordPressを立てた時にカスタムパーマリンクが機能しない時の対処法
## この記事について
[前回の記事](https://qiita.com/yabish/items/fff120b622d723f0e7ce)の執筆後にWordPressのパーマリンクを変更すると「更新に失敗しました。返答が正しいJSONレスポンスではありません。」とのエラー…
WordPressを初めて触っていたこともあり、何が原因かわからないエラー文に悪戦苦闘しましたが、なんとなく状況が理解できてきたので得られた知見をまとめました。
おそらく、[really simple ssl](https://ja.wordpress.org/plugins/really-simple-ssl/)のプラグインが悪さしているのでしょうが…![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/412378/6d8437be-28f8-ba4f-b001-4b73259b1016.png)
## 問題が発生した状況
AWSのアーキテクチャ:[前回の記事](https://qiita.com/
PHPカンファレンス関西2024に行ってきました
# はじめに
– 昨日[PHPカンファレンス関西2024](https://2024.kphpug.jp/)に行ってきました。
– 弊社はゴールドスポンサーとして協賛しており、バッグやパンフレットに大きくロゴを入れていただきました!
– 私もスポンサー枠で参加させてもらったので、拝聴したセッションごとに内容と感想を書いて行きます。
# Laravelでミニマム開発からスタートして個人サービスを利益化するまでの経験談!
– https://fortee.
[Laravel / Fortify] 認証処理を可視化、カスタマイズしよう!
**プロフィール**
* 私立文系大学3年
* プログラミング歴は1年1か月
* Laravel / javascript を主に使用
* 現在は React を学習中
* 最近友人にもらった日向坂・上村ひなの写真集を見て、少しハマりそう## Laravel / Fortifyについて
Laravelの認証パッケージには複数の種類がありますが、私は以下の2つの使用経験があります。
1. Laravel / ui
1. Fortify私がLaravelの学習を始めるにあたり、以下の書籍を購入し学習しました。
おそらく最もメジャーな書籍だと思われます。
[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%AF-Laravel%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-ebook/d
【Drupal】PHP構成の設定
## はじめに
DrupalのPHP構成の確認画面をご存知ですか?
こちらのパスから確認することができます。
“/admin/reports/status/php“![PHP構成確認画面](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3334980/576d9a60-85ba-d54b-f512-3c2695263f62.png)
通常であればインスタンスやコンテナの設定でPHP構成の管理を巻き取ることが多いのかなと思います。
ただ、
「本番環境・テスト環境ではメモリの制限それぞれ設定したい」
「開発環境ではメモリをフルに使いたい」
ってこと結構ありますよね。**(環境変数を使えば簡単にできるよって意見もあるかと思いますが…)**
今回は、アプリ側でのPHP構成の変更方法をご紹介します。
## 設定場所
設定場所はなんと!
Drupal標準で用意されています。### Drupal標準..?
軽くissueを調べてみましたが、恐らく“settings.php“ or “sett
PHPカンファレンス 関西 2024
先日、PHPカンファレンス関西に行ってきましたので、体験談を記録します。
# PHPカンファレンス関西とは
PHPカンファレンス関西は、PHPエンジニア(:PHPer)がPHPやPHP周辺の技術的知識やノウハウ、体験を共有するための大規模技術カンファレンスです。
今年は2018年から6年ぶりの開催になります。# 参加したセッション
– [レガシーシステムへのPHPStan導入から半年での課題と効果](https://fortee.jp/phpcon-kansai2024/proposal/10c6f1ac-ec4b-4895-8db7-39b9a13c84bb)
– [RDBアンチパターンと戦う – 削除フラグ完全攻略ガイド](https://fortee.jp/phpcon-kansai2024/proposal/4e03491c-2a97-40aa-8ff9-a68593b0e847)
– [アプリケーションエンジニアこそ「監視」だよね!と私が考える訳](https://fortee.jp/phpcon-kansai2024/proposal/42712995-5f3e-4c
【PHP】マイナーフレームワーク「Flow」を試してみる~セッション編~
# 初めに
前回は[こちら](https://qiita.com/nnhkrnk/items/e98f25bec6cc067f24a4)の記事でFlowにおけるキャッシュの扱い方について解説しました。今回はセッションの扱いについて解説していきます。# セッションの扱い方
セッションによくある「ECサイトの商品カゴ」の例で説明します。まずは、セッションで扱いたい情報のクラスを用意しましょう。
以下のようなカゴEntityを作成しました。“`php
/**
* @Flow\Scope(“session”)
*/
class CartEntity {/**
* @var array
*/
protected $items = array();/**
* @param string $item
* @return void
* @Flow\Session(autoStart = true)
*/
public function addItem($item) {
【PHP】PHPで使うfor文って何?
## for文って何?
同じ動作を繰り返し行う場合には、ループ処理がよく使われます。
ループ処理を使用することにより、コードがシンプルになり作業効率が向上します。
そのループ処理を行う文の1つがfor文です。
for文は繰り返す回数が決まっているときに使用します。### どう記述するの?
“`php:for文
for (式1; 式2; 式3){
//ここに処理を書く
}
“`
0から5までの数字を表示させる場合
“`
for ($i = 0; $i < 6; $i++){ echo $i; } ``` ① **$i =0 ;** ここでは、式1を0で設定します。 ② **$i < 6;** ここでは、式2で$iが6より小さい間繰り返す指示をしています。 ③ **$i++;** ここでは、式3に処理を1回するたびに初期値に+1する指示を出しています。 ④ **echo $i;** ここでは、処理を1回するたびに$iを出力する指示を出しています。 echoした結果 012345 が表示されます。 ### 2つのfor文を連動させる、2重ループ f
PHP入門 ~データベース接続~
# PDOとは
「PHP Data Objects」の略で、PHPから簡単にDBにアクセスするための拡張モジュールです。データベースの種類やバージョンの違いを気にせずコードを書くことができます。# データベースに接続
PDOオブジェクトのインスタンスを作成します。以下の例では、変数$pdoに代入しています。
“`php
$pdo = new PDO($dsn, $username, $password, $options);
“`
4つの引数を渡していて、説明は以下の通りです。
* $dsn…データベースに接続するための必要な情報
`dbname`はデータベース名を指定
`host`はホスト名またはIPアドレスを指定
`charset`は文字セットを指定
“`php
$dsn = ‘mysql:dbname=test;host=localhost;charset=utf8mb4’;
“`
* $username…データベースに接続するためのユーザー名
ルート権限を使う場合、デフォルトは`root`です。
“`php
$username = ‘root’;
“`
* $p
サイボウズGaroonでSOAP APIを使ってPHPでリクエストを送る
## 記事の概要
社内ネットワークで組んでいるシステムから、同じく社内ネットワーク内にあるオンプレミス版のgaroon5のユーザ情報を取得したいという状況が発生し、初めてSOAP APIを使ってみたという内容の記事です。### 下調べ
ひとまずcybozu developer networkでgaroon API ドキュメントを確認。
[→SOAP APIの共通仕様](https://cybozu.dev/ja/garoon/docs/soap-api/overview/soap/)
[→ユーザ情報を取得するAPI](https://cybozu.dev/ja/garoon/docs/soap-api/base/get-users/)### 使用しているgaroonのAPI定義確認
定義の中にリクエストの送り先がAPIの種類ごとに書いてあります。
“`xml
laravel 他のフィールドの値によって必須としたいときのバリデーション
# やりたいこと
例
typeが1の場合のみdetailを入力必須にしたい
または入力禁止にしたい
“`
{
“type”: 1,
“detail”: “XXX”
}
“`# 結論
“`php:FormRequest
public function rules(): array
{
return [
“type” => [‘required’, ‘integer’, new Enum(Type::class)],
// 入力必須にしたいとき
“detail” => [‘string’, ‘nullable’, Rule::requiredIf(条件)]
// 入力禁止にしたいとき
“detail” => [‘string’, ‘nullable’, Rule::prohibitedIf(条件)]
];
}“`
例
“`php:FormRequest
“detail” => [‘stri
Laravel API Resourceのテスト
# 概要
調べ方が悪いのかもしれないけど、APIResourceのテストを書いた記事が見つけられなかった。
Featureテストを使えばリクエストからレスポンスまでをテスト出来るので、あまり需要はないかもしれないけど備忘録として残しておく。## 環境
– Laravel10
– PHP8.1
– MySQL8## Resource に Model を渡すケース
ControllerからユーザーモデルをResourceクラスに渡す
“`php: UserShowController.php
LEMP環境 Laravel Nginx Mysql PHPをDockerで構築してみた
## はじめに
最近LaravelのDocker環境を考える機会がありました。
他の環境は作ったことが何度かありましたが、Laravelは立ち上げのコマンドすら知らない状態でDocker環境を構築していったので良い学びになりました。
`healthcheck`を使用することにより、DBの準備完了前にLaravelがDBを読み取ろうとする事故をなくすことに成功しています。
コンテナの実行順序を正しく制御することで、terminarl上でDocker構築のログが止まる頃にはアプリが完全に応答する状態を保証しています。
適宜コメントを入れているので、参考にしてください。私は学生エンジニアです~~あと2ヶ月くらい…~~。
至らない点もあるかもしれません。
その点ご了承ください。## 前提条件
Docker, Docker Composeの知識## 各ファイルの説明
ファイル構成
“`shell
data/ # Dockerで立てたdatabaseの中身
docker/
db/
conf.d/
– my.cnf
init/
CMSで作るモダンECサイト
## こんなもの作りました。
義理の母がお花屋さんをしていて、たまに個人でお店をだしていたりしてるのですが、かなりセンスが良くリピーターも多いので「ECサイトで販売したら売れるのでは?!」と思い実際に作ってみました。
(レスポンシブ対応していないため、PC表示だとかなり崩れて表示されます・・)宣伝もかねて紹介させてもらいます。
## 使用技術
– WordPress
– PHP
– Bootstrap
– その他もろもろの無料サーバ、DBなどなど## 各パーツとこだわり
ロゴも自作です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3480394/e17e00c6-590f-790b-ae9d-6af729f10b47.png)
TOPバナーのくすみ加工とカラーがお気に入りです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazon
【PHP】代入演算子の返り値が変わることがある
PHPの[代入演算子](https://www.php.net/manual/ja/language.operators.assignment.php)は式なので値が返ってきます。
どういうことかというと、`$a = 10`という代入式を書くと`$a`に10が代入されますが、それとは別に`$a = 10`全体としての値も10となるわけです。# 多重代入
時々ある
“`php
$a = $b = $c = 10;
“`という書き方、これは
“`php
$a = ( $b = ( $c = 10 ) );
“`と解釈されます。
まず`$c = 10`で`$c`に10が代入され、`$b`には`$c = 10`の返り値10が代入され、`$a`には`$b = ( $c = 10 )`の返り値10が代入される、ということになり、結果として`$a`・`$b`・`$c`すべてが10になります。プロパティも同じです。
“`php
$c = new stdClass();
$a = $c->b = 10;var_dump($a, $c); // $a=10, $b
php nginx mysqlをDockerで構築する
## はじめに
最近LaravelのDocker環境を考える機会がありました。
その時の知見を活かして、昔考えたDocker PHP環境をアップグレードしたいと思います。
今回の構成の特徴は`healthcheck`です。 `depends_on`で実行順序を保証するだけではなく、対象のコンテナの準備が完了(healthcheckに合格)してから依存するコンテナが構築を開始するようにしています。
適宜コメントを入れているので、参考にしてください。私は学生エンジニアです~~あと2ヶ月くらい…~~。
至らない点もあるかもしれません。
その点ご了承ください。
## 前提条件
Docker, Docker Composeの知識## ファイル構成
“`
docker/
db/
conf.d/
– my.cnf
init/
– init.sql
.env
php/
– .env
– Dockerfile
– php.ini
nginx/
– default.conf
app/
src/
Google.Calendar を ローカルで利用する為の方法について
[ 初投稿 ]
Google.Calendarを ローカルで利用する為の
Source.Generatorを 作った。[calenG](https://twilight-bluesy.net/_utl/calenG-v10/index.html) ( TwilightBluesy )
幾つかの方法を比較したトコロ
この方法が一番 扱いやすいのでは と 思う。cG20.sh or cG20.bat を
コマンドライン or Application から call 。“`php:cG20.php
PHPでZIPファイル内のCSVファイルをそのまま読み取る
# 結論
:::note info
– [fw3/streams](https://packagist.org/packages/fw3/streams)を`composer require fw3/streams`して使おう。
– **[実装](#実装)** にあるサンプルコードをコピーして必要なところだけ書き換えれば終わり。
::::::note warn
– PHP7.2.0未満(下限PHP5.3.3)で解決したい場合は[fw3_for_old/streams](https://packagist.org/packages/fw3_for_old/streams)を利用してください。(`composer require fw3_for_old/streams`)
– [fw3/streams](https://packagist.org/packages/fw3/streams)および[fw3_for_old/streams](https://packagist.org/packages/fw3_for_old/streams)共にPHP8.3.1まで動作確認済みのため、P