- 1. php.iniの設定が反映されない(windows)
- 2. 【PHP】配列の値を書き換える※備忘録
- 3. 【PHP】FlowのプロジェクトにPHP Stan入れてみる
- 4. cakeを簡単に触ってみる!
- 5. Laravelでcsvファイルを簡単インポート
- 6. [Laravel]フォームリクエストバリデーションについて
- 7. 静的メソッド(スタティック)と動的メソッド(インスタンス)について。とりあえず案件先に合わせてたので、改めてまとめてみた。
- 8. Lalavel開発をちょっと快適に! tinkerの使い方
- 9. 【PHP】 __destruct()の実行タイミングについての備忘録
- 10. 17年前から塩漬けされているWebシステム修正についての役に立たない手記
- 11. apacheが動かなくなったときの1つの原因
- 12. Laravel9でWebスクレイピングしてみた
- 13. FileファサードのallFilesメソッドは隠しファイルを取得するかどうかを指定できる
- 14. サブディレクトリ型の多言語サイトにおける言語切り替え時の遷移先URIの設定
- 15. WordPress でサムネイル画像の自動生成に Intervention Image 2 を使ってみた
- 16. 引数、戻り値とは?関数について理解が足りないので勉強してみた
- 17. php.iniファイルが作成できない(Mac)
- 18. 【初参加】カンファレンス参加はいいぞ【PHPカンファレンス】
- 19. postされた日付をexplode関数で区切りcheckdate関数でバリデーション
- 20. AWS Amazon LinuxでWordPressを立てた時にカスタムパーマリンクが機能しない時の対処法
php.iniの設定が反映されない(windows)
## はじめに
PDO driversにMySQLを入れたくてphp.iniをいじっていたのですが、php.iniの設定が反映されなくて困っていました。その時の対処法を残しておきます。## 環境
・OS : Windows10
・PHP8.2.9
・Apache2.4## 問題点
・Apacheを再起動していないこれが問題点でした。しかし、PHPのダウンロードしかしていなかったため、ApacheをダウンロードしてPHPと連携させて再起動していきます。
## Apacheのダウンロード
①以下のリンクにアクセス
https://httpd.apache.org/②最新バージョンである「Apache httpd 2.4.57 Released」のブロックにある「Download」を選択
③「Apache HTTP Server 2.4.57 (httpd): 2.4.57 is the latest available version 2023-04-06
」にある「Files for Microsoft Windows」を選択(今回はWindowsのため)
※2023
【PHP】配列の値を書き換える※備忘録
# 前書き
相談をされた時に回答したものの備忘録になります。
PHPでエクセルファイルを作る業務をしていたそうで、送られてきた値の順番からセルに優先度を設定しなければならないとのことで、最終的には以下のコードのように入れるセル番号に対しての文字列を設定したいと相談を受けました。“`php
$array = [
‘C10’ => ‘()’,
‘C11’ => ‘()’,
‘C12’ => ‘(1)’,
‘C13’ => ‘()’,
‘C14’ => ‘()’,
‘C15’ => ‘(3)’,
‘C16’ => ‘()’,
‘C17’ => ‘()’,
‘C18’ => ‘(2)’,
‘C19’ => ‘()’,
‘C20’ => ‘()’
];
“`タイプのようなものがあり、番号で管理されているらしいです。
以下のような配列でタイプと優先度が送られてきます。
“`php
$values = [
1 => ‘013’,
2 => ‘019’,
3 => ‘0
【PHP】FlowのプロジェクトにPHP Stan入れてみる
# 初めに
Flowのキャッチアップのために記事を書き始めて3か月ほど経ちました。
初めてのPHPにも慣れ、そろそろ静的解析ツールを入れてソースを綺麗にしたいなぁと思っていたので、PHPでよく使われているPHP Stanなるものを入れてみました。# PHP Stanとは
PHP StanとはPHPのソースで使用される静的解析ツールの一つです。https://phpstan.org/
以下のようなコードを検出してくれます。
* 型安全性の問題
* 未定義の変数
* 死んだコード(使用されていないコード)
* クラスやメソッドの存在しない呼び出し
* 引数の数や型の不一致
* …and more!!## 特徴1:チェックの厳しさを決めることができる
PHP Stanはチェックのレベルを0~9の10段階で設定することができます。
プロジェクトに合わせたレベルを設定できるため、新規導入しやすいのが良いですね。
各レベルの詳細は[こちら](https://phpstan.org/user-guide/rule-levels)をご参照ください。## 特徴2:特定のFWに特化
cakeを簡単に触ってみる!
### はじめに
仕事でcakephpを使うことになりましたので、実際にcakephpを使ってみたいと思います!### cakephpとは
phpで開発されたフレームワーク。MVCアーキテクチャを採用していてRuby on Railsの影響を受けてる。MVCの流れを簡単に確認しましたので備忘録も兼ねてまとめます。### cakephpをインストール
とりあえず下記のコマンドでcakephpをインストール
“`
composer create-project –prefer-dist cakephp/app:4 BlogApp
“`ディレクトリ構成はこんな感じです
BlogApp
|-.github
|-bin
|-config
|-database
|-logs
|-plugins
|-resources
|-src
|-templates
|-tests
|-temp
|-vendor
|-webroot
|-.editorconfig
|-gitattributes
|-.ignore
|-
Laravelでcsvファイルを簡単インポート
## はじめに
選択したCSVファイルがインポートされるまでの流れを簡単に作ってみたいと思い、必要最低限で実装。## テーブル定義
| カラム | 型 | CSVファイル読み込み対象 |
| —- | —- | —- |
| id | bigint(20) | |
| name | varchar(255) |○ |
| age | varchar(255) | ○ |
| address | varchar(255) | ○ |
| created_at | timestamp | |
| rpdated_at | timestamp | |### 今回使うcsvファイル
![image](https://firebasestorage.googleapis.com/v0/b/ciita-c6ea6.appspot.com/o/user%2Fimages%2Fcvza5ChG1vGAzClo?alt=media&token=e8fe9087-a205-40c8-9693-ff6a09c96c6b)## 実際の動き
### イン
[Laravel]フォームリクエストバリデーションについて
## はじめに
ララベルのバリデーション実装時に躓いたので、備忘録も兼てまとめたいと思います。### バリデーションの種類
Laravelのバリデーションは大きく分けて二つあります。1.validateメソッドを使ってコントローラーに記述する
2.フォームリクエストバリデーション
### どちらを使った方がいいのか
時と場合によりますが、特に理由がなければフォームバリデーションを使った方が良い。理由としてファットコントローラーを避けるため。コントローラーにはなるべくロジックは書きたくないので、分けられるなら分けた方が良い
フォームリクエストバリデーションのファイルはバリデーションの処理しか書かないので分かりやすい。
今回はフォームリクエストバリデーションについてまとめたいと思います
### フォームリクエストバリデーションの使い方下記の簡単なフォームで実装します。
![image](https://firebasestorage.googleapis.com/v0/b/ciita-c6ea6.appspot.com/o/user%2Fimages%2F24F
静的メソッド(スタティック)と動的メソッド(インスタンス)について。とりあえず案件先に合わせてたので、改めてまとめてみた。
本日は静的メソッドと動的メソッドについて、備忘録も兼ねて書いてみました!
## 環境
__使用言語__:PHP 8.1.10__フレームワーク__:laravel9.19
## はじめに
– 他の人のソースに合わせてstaticとかnewでメソッド使ったり、プロパティ参照してる。
– とりあえず欲しい値が取得できれば良い。
– そもそも静的メソッドと動的メソッドの違いが分からない
– 静的メソッドと動的メソッドどちらで作ろうか迷った。自分はこんな感じで開発してたので、改めてまとめてみることにしました!
## 静的メソッドと動的メソッドとは
### 静的メソッドについて
まず静的メソッドとは、クラスの中で「static」を記述して作成したメソッドの事です。__呼び出しはクラスに対して行い、どこで呼び出しても同じ処理を行います。____呼び方__
“`
静的メソッド
スタティックメソッド
クラスメソッド
“`
と、呼ばれます。使うには下記のようにfunctionにstaticを付けます。
“`Test2Controller.php
//スタティックとインスタン
Lalavel開発をちょっと快適に! tinkerの使い方
## はじめに
Laravelでクエリビルダを調べてる時に気になったので深掘りしてみました。## tinkerとは
Laravelに標準で搭載されている対話型のコンソール。LaravelでクエリビルダやEloquentの結果を確認する事ができるみたいです。
取得したデータを確認したい時に便利かなと思いました。
## とりあえず使ってみた
### 使い方
下記コマンド入力
php artisan tinker
“`
kamimurayuuta@uemurayuutanoMacBook-Pro todoTask % php artisan tinkerPsy Shell v0.11.12 (PHP 8.1.10 — cli) by Justin Hileman
>
“`
## モデルの取得(全件)
“`
> App\Models\User::all()
= Illuminate\Database\Eloquent\Collection {#4466
all: [
App\Models\User {#4720
id
【PHP】 __destruct()の実行タイミングについての備忘録
業務において`__destruct()`周りの挙動を調査する過程で、実行タイミングがいまいちイメージしにくかったので備忘として記載してみました。
# __destruct()とは
公式ドキュメントでは以下のように説明されていました。
> デストラクタメソッドは、 特定のオブジェクトを参照するリファレンスがひとつもなくなったときにコールされます。
>あるいは、スクリプトの終了時にも順不同でコールされます。# 実際に動かしてみた
文章だけ見てもいまいちイメージがつかなかったので簡単なコードを書いてみました。
sample.phpに`__construct()`、`__destruct()`とpublicな変数を定義しました。
“`php:sample.php
17年前から塩漬けされているWebシステム修正についての役に立たない手記
以前、Xにて
> クソコードがどんなものか知らない人は、知ろうとしてはいけない。コードだけではなくミドルウェアの設定からクソは始まっているのだから…と発言して、ふと思ったのですが、技術系ブログにて、クソコードについての投稿は多いようですがでミドルウェアの設定で苦労したという話があまりないので丁度最近行った闇の作業を感じたままに書く。
### それは、どこにある?から始まる
“`shell
dig +short example.com | xargs -I % dig -x %
xxx.xxx.xxx.xxx.in-addr.arpa. 600 IN PTR On-prem.hogefuga.
“`とりあえず、ドキュメント漁ってsshする。
~~sshしたら負け?知るか~~ログイン後のメッセージでOSがFreeBSDであることが分かった。
### Webサーバー何使ってるか見る
“`bash
ps ax | grep -e nginx -e httpd
28836 – Is 0:00.01 nginx: master process /usr/
apacheが動かなくなったときの1つの原因
# はじめに
こんにちは。
今回は、私が遭遇したapacheが動かなくなってしまった際の1つの原因について解説します。# apachectl start してみるも
“`
httpd: Syntax error on line 191 of
/usr/local/apache2/conf/httpd.conf:
Cannot load modules/libphp.so into server:
dlopen(/usr/local/apache2/modules/libphp.so, 0x000A):
Library not loaded: /usr/local/opt/libsodium/lib/libsodium.23.dylib\n
Referenced from: <英数字の羅列>
/usr/local/apache2/modules/libphp.so\n
Reason: tried: ‘/usr/local/apache2/lib/libsodium.23.dylib’ (no such file),
‘/usr/local/opt/libsodi
Laravel9でWebスクレイピングしてみた
## はじめに
今回、聞いたことあるけど実際触ったことのなかったWebスクレイピングをやってみようということで、LaravelでWebスクレイピングを試してみることにしました。内容は何でも良かったのですが、
Pubmedという論文サイトがありまして、それをWebスクレイピングすることにしました。### Webスクレイピングとは
> Webスクレイピングとは、Webサイトから特定の情報を自動的に抽出するコンピュータソフトウェア技術のことです。Webスクレイピングを使えば、インターネット上に存在するWebサイトやデータベースを探り、大量のデータの中から特定のデータのみを抽出させることができます。
> Webサイト上のデータを移す際は、手作業でコピー&ペーストを行う方も多いでしょう。しかし、Webスクレイピングの活用によって、面倒な手作業を自動化できるため、作業時間の短縮や転記ミス防止が可能です。 抽出したデータはExcelやCSVファイルなどにエクスポートできるため、データを活用した分析が行えるようになります。とのことです。
実際にWebに転がっている大量のデータから、必要なデ
FileファサードのallFilesメソッドは隠しファイルを取得するかどうかを指定できる
ディレクトリのファイルパス一覧を取得しようとしたときに、どうしてもあるファイルパスのみ取得できなかったので、調べてみました。
ドキュメントが不十分で分かりにくかったので、備忘録のため書き残します。# 目次
– [allFilesメソッドについて](#allFilesメソッドについて)
– [allFilesメソッドの引数について](#allFilesメソッドの引数について)
– [内部実装について](#内部実装について)## allFilesメソッドについて
「与えられたディレクトリからすべてのファイルを取得する(再帰的に)」メソッドです。
つまり、引数で渡したディレクトリのサブディレクトリまで全部ファイルパスを取ってくるよというメソッドです。
https://laravel.com/api/10.x/Illuminate/Filesystem/Filesystem.html#method_allFiles## allFilesメソッドの引数について
第1引数は、ディレクトリのパスをstringで渡します。
第2引数は、ドットから始まる隠しファイルまでパスを返すかどうかをb
サブディレクトリ型の多言語サイトにおける言語切り替え時の遷移先URIの設定
## 問題状況
同一のドメインで日本語のサイトを運営しているが、サブディレクトリ型で複数の言語に対応したサイトを構築することになった。ヘッダーには言語切替のボタンを設置したが、これがクリックされた時に同じ内容のページに遷移させたい。例えば、日本語、英語(English: en)、フランス語(français: fr)、中国語(中文: zh)に対応したWebサイトのTOPは、それぞれ、
– `https://www.mysite.com/`
– `https://www.mysite.com/en/`
– `https://www.mysite.com/fr/`
– `https://www.mysite.com/zh/`であり、それぞれの「ごあいさつ」や「会社情報」に相当するABOUT USのアドレスは、
– `https://www.mysite.com/aboutus/`
– `https://www.mysite.com/en/aboutus/`
– `https://www.mysite.com/fr/aboutus/`
– `https://ww
WordPress でサムネイル画像の自動生成に Intervention Image 2 を使ってみた
# 概要
PHP の画像処理ライブラリである [Intervention Image](https://image.intervention.io/v2) のバージョン2を WordPress で使う方法について調べてみました。WordPress で某サイトの画像一覧を作成中なのですが、元画像( 400KB 程度)が 50 ファイルもあると 1ページの転送量が 10MB をゆうに超えてしまうので、元画像から動的にサムネイルを自動生成してくれる、ちょうど Apache/Nginx の small_light のような機能が欲しいなぁ~とググってみました。環境がレンタルサーバですので、当然モジュールの追加などはできず。
Laravel の Intervention Image がよさげでこれを WordPress プラグインで使えないか探してみたところ、以下のプラグインが見つかりました。
https://github.com/getdave/wp-intervention
# プラグインのインストール
ソースを見ても、まんま Laravel ライブラリで WordPress プラ
引数、戻り値とは?関数について理解が足りないので勉強してみた
関数についてあまり理解できていなかったので、
引数、戻り値について調べた備忘録です。下記を参考にしました。
引数、戻り値とは?【分かりやすい解説シリーズ #7】【プログラミング】
“`
引数(パラメータ)=材料
戻り値(返り値)=結果
“`
関数は、各言語で用意されているものもあるし、自作することもできるもの“`
材料をいれると
↓
処理されて
↓
結果が出てくる
“`例えば、大根電動おろし器があったとする
“`
大根を処理機に入れて
↓
おろし処理され
↓
すりおろされた、大根おろしがでてくる
“`
プログラミングの考えに戻すと
“`
引数
↓
関数
↓
戻り値
“`## 実際の処理(phpの場合)関数の定義
“`php
function 関数名(引数){
行う処理;
return 戻り値;
}
“`
## 簡単な実例
“`php
function colc ($num1,$num2){
// 引数1と引数2を足して$totalに入れる
$
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/