<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Zennの「PHP」のフィード]]></title><description><![CDATA[Zennのトピック「PHP」のRSSフィードです]]></description><link>https://zenn.dev/topics/php</link><image><url>https://storage.googleapis.com/zenn-user-upload/topics/21186e4563.png</url><title>Zennの「PHP」のフィード</title><link>https://zenn.dev/topics/php</link></image><generator>zenn.dev</generator><lastBuildDate>Tue, 07 Jan 2025 13:45:01 GMT</lastBuildDate><atom:link href="https://zenn.dev/topics/php/feed" rel="self" type="application/rss+xml"/><language><![CDATA[ja]]></language><item><title><![CDATA[Drupalでモジュールインストール時にfgets周りでエラーが出たとき]]></title><description><![CDATA[DrupalでWebのUIからpersistent_loginモジュールをインストールしたとき、Dockerのログに以下のようなエラーが出ました。
&gt;  [error]  TypeError: fgets(): Argument #1 ($stream) must be of type resource, false given in fgets() (line 248 of /var/www/web/core/lib/Drupal/Component/Gettext/PoStreamReader.php) #0 /var/www/web/core/lib/Drupal/Compo...]]></description><link>https://zenn.dev/the2ndloop/articles/9060229cd8878f</link><guid isPermaLink="true">https://zenn.dev/the2ndloop/articles/9060229cd8878f</guid><pubDate>Tue, 07 Jan 2025 01:27:23 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--vbRyXGoW--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:Drupal%25E3%2581%25A7%25E3%2583%25A2%25E3%2582%25B8%25E3%2583%25A5%25E3%2583%25BC%25E3%2583%25AB%25E3%2582%25A4%25E3%2583%25B3%25E3%2582%25B9%25E3%2583%2588%25E3%2583%25BC%25E3%2583%25AB%25E6%2599%2582%25E3%2581%25ABfgets%25E5%2591%25A8%25E3%2582%258A%25E3%2581%25A7%25E3%2582%25A8%25E3%2583%25A9%25E3%2583%25BC%25E3%2581%258C%25E5%2587%25BA%25E3%2581%259F%25E3%2581%25A8%25E3%2581%258D%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:%25E3%2581%25B2%25E3%2581%259A%25E3%2581%25BF%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyL2NiMzVlYmVjNWIuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png" length="0" type="image/png"/><dc:creator>ひずみ</dc:creator></item><item><title><![CDATA[EC-Cube2の開発に挑戦]]></title><description><![CDATA[
 はじめに
EC-Cubeというフレームワークをご存知でしょうか？
PHPでECサイトをお手軽に構築できるというフレームワークですが非常に情報が少なく、書籍もほぼありません。
特に今回紹介するEC-Cube2は現代ではほぼ情報がありません。
入門書がないので案件を担当する場合、手探りになります。
そこで私のメモを少しづつ整理して公開いたします。

 HTMLテンプレートの探し方
コントローラのinit関数で $this-&gt;tpl_mainpage とか書いてあるあたりでSmartyテンプレートを指定している場合が多い。
(laravel の　return viewの引数相当)
た...]]></description><link>https://zenn.dev/k_tabuchi/articles/63d02529cc312e</link><guid isPermaLink="true">https://zenn.dev/k_tabuchi/articles/63d02529cc312e</guid><pubDate>Sun, 05 Jan 2025 06:22:49 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--ax9CsdUh--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:EC-Cube2%25E3%2581%25AE%25E9%2596%258B%25E7%2599%25BA%25E3%2581%25AB%25E6%258C%2591%25E6%2588%25A6%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:k-tabuchi%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzhkMjhhY2RlZGQuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png" length="0" type="image/png"/><dc:creator>k-tabuchi</dc:creator></item><item><title><![CDATA[【Docker】Nginx+PHP-FPMの環境をつくってみる]]></title><description><![CDATA[
 これは？？
記事のタイトル通り、Nginx＋PHP-FPMの環境をDockerで作ってみます

 参考
https://zenn.dev/nogu_d626/articles/d200eddefd8663
↑の記事を参考に環境構築していきます
!
参考記事ではphp8.2を使っていますが、本記事では php7.4 を使います


 ディレクトリ構造
$ tree
.
├── compose.yaml
├── docker
│   ├── nginx
│   │   └── nginx.conf
│   └── php
│       └── Dockerfile
└── src
  ...]]></description><link>https://zenn.dev/kuuki/articles/docker-nginx-php-fpm</link><guid isPermaLink="true">https://zenn.dev/kuuki/articles/docker-nginx-php-fpm</guid><pubDate>Sun, 05 Jan 2025 05:41:33 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--eEM1W1N4--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:%25E3%2580%2590Docker%25E3%2580%2591Nginx%252BPHP-FPM%25E3%2581%25AE%25E7%2592%25B0%25E5%25A2%2583%25E3%2582%2592%25E3%2581%25A4%25E3%2581%258F%25E3%2581%25A3%25E3%2581%25A6%25E3%2581%25BF%25E3%2582%258B%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:hisui%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzAxNzI1MTUwNTkuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png" length="0" type="image/png"/><dc:creator>hisui</dc:creator></item><item><title><![CDATA[GitLab CI で reviewdog と PHPStan を使いたい]]></title><description><![CDATA[
 はじめに
GitLab CI でも reviewdog で PHPStan したい。

 準備

 1. reviewdog 用のユーザーを作成する
Access

Projects limit: 1
Can create group: No
Access level: Regular
External: Yes

気分が上がるので Aveter のアイコンを設定しておくこと！

 2. 作成したユーザーのアクセストークンを作成する
User Settings -&gt; Access Tokens -&gt; Personal Access Tokens

Name: review...]]></description><link>https://zenn.dev/oppara/articles/gitlab-ci-reviewdog-phpstan</link><guid isPermaLink="true">https://zenn.dev/oppara/articles/gitlab-ci-reviewdog-phpstan</guid><pubDate>Sat, 04 Jan 2025 09:05:24 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--43n7jRQk--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:GitLab%2520CI%2520%25E3%2581%25A7%2520reviewdog%2520%25E3%2581%25A8%2520PHPStan%2520%25E3%2582%2592%25E4%25BD%25BF%25E3%2581%2584%25E3%2581%259F%25E3%2581%2584%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:oppara%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EtL0FPaDE0R2dyYTRKSGo5UzNEckZ0dTlwcUd5d0V4ZEZZTjZmS0JUQjBkTkthdFE9czI1MC1j%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png" length="0" type="image/png"/><dc:creator>oppara</dc:creator></item><item><title><![CDATA[Laravel 11 + Fortify で BeautifulCode なサイトを構築する]]></title><description><![CDATA[Laravel 11 での開発方法を学びながら、SPA ではなく伝統的な MPA 方式で、堅牢で美しいコードをフロントエンドに提供する仕組みの Web サイトを構築します。]]></description><link>https://zenn.dev/debiru/books/5f10f2e7ccedd8</link><guid isPermaLink="true">https://zenn.dev/debiru/books/5f10f2e7ccedd8</guid><pubDate>Thu, 02 Jan 2025 12:36:25 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--hrKJp6YG--/g_center%2Ch_280%2Cl_fetch:aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYm9va19jb3Zlci85NzUyNzFmMTc2LmpwZWc=%2Cw_200/v1627283836/default/og-base-book_yz4z02.jpg" length="0" type="image/jpeg"/><dc:creator>debiru</dc:creator></item><item><title><![CDATA[スライディングウインドウアルゴリズムを使って問題を解く]]></title><description><![CDATA[
 解いた問題
https://paiza.jp/works/mondai/a_rank_skillcheck_archive/max_range_large
PHPを使って実装しています。

 解き方
今回は、部分区間や連続したデータの処理を効率よく行うために、スライディングウインドウアルゴリズムを使用しました。このアルゴリズムは、指定した範囲内のデータを少しずつずらしながら処理を行う手法です。
例えば、指定した範囲が２の場合の処理の流れは以下のようになります。

今回の問題では、連続するn日の中でk日分の訪問者の平均そのものを計算する必要はなく、最大値が現れる回数と最初の日付を求める...]]></description><link>https://zenn.dev/snake12379/articles/dff4c1817975ee</link><guid isPermaLink="true">https://zenn.dev/snake12379/articles/dff4c1817975ee</guid><pubDate>Thu, 02 Jan 2025 08:51:03 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--Qc0OynjJ--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:%25E3%2582%25B9%25E3%2583%25A9%25E3%2582%25A4%25E3%2583%2587%25E3%2582%25A3%25E3%2583%25B3%25E3%2582%25B0%25E3%2582%25A6%25E3%2582%25A4%25E3%2583%25B3%25E3%2583%2589%25E3%2582%25A6%25E3%2582%25A2%25E3%2583%25AB%25E3%2582%25B4%25E3%2583%25AA%25E3%2582%25BA%25E3%2583%25A0%25E3%2582%2592%25E4%25BD%25BF%25E3%2581%25A3%25E3%2581%25A6%25E5%2595%258F%25E9%25A1%258C%25E3%2582%2592%25E8%25A7%25A3%25E3%2581%258F%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:wataru%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EtL0FPaDE0R2gweVJaYUR2UVp5bW9XbFZ2T3o0X0ZGZ0JrSnhFM0xBb2lGVUl3PXM5Ni1j%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png" length="0" type="image/png"/><dc:creator>wataru</dc:creator></item><item><title><![CDATA[Dockerでnginx+php-fpmをとりあえず動かしてみるハンズオン]]></title><description><![CDATA[
 検証環境
Docker version 20.10.13, build a224086
MacOS Sonoma

 ゴール

nginxとphp-fpmを使って、phpinfo() を表示する。


 ディレクトリ構成
.
├── docker
│   ├── nginx
│   │   └── default.conf
│   └── php
│       └── Dockerfile
├── docker-compose.yml
└── src
    └── index.php

 docker-compose.yml
docker-compose.ymlに以下の内容を記載...]]></description><link>https://zenn.dev/aki_artisan/articles/nginx-php-fpm-docker</link><guid isPermaLink="true">https://zenn.dev/aki_artisan/articles/nginx-php-fpm-docker</guid><pubDate>Wed, 01 Jan 2025 03:59:22 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--CNGnhpdK--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:Docker%25E3%2581%25A7nginx%252Bphp-fpm%25E3%2582%2592%25E3%2581%25A8%25E3%2582%258A%25E3%2581%2582%25E3%2581%2588%25E3%2581%259A%25E5%258B%2595%25E3%2581%258B%25E3%2581%2597%25E3%2581%25A6%25E3%2581%25BF%25E3%2582%258B%25E3%2583%258F%25E3%2583%25B3%25E3%2582%25BA%25E3%2582%25AA%25E3%2583%25B3%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:%25E3%2581%2582%25E3%2581%258B%25E3%2581%25A4%25E3%2581%258B%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyL2I5NDMyMGUwMTEuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png" length="0" type="image/png"/><dc:creator>あかつか</dc:creator></item><item><title><![CDATA[読みやすい改行のための軽量な分かち書き器をPHPで]]></title><description><![CDATA[BudouXという汎用の日本語分かち書きライブラリがあります。
https://developers-jp.googleblog.com/2023/09/budoux-adobe.html
以前これのJava版実装をPHPに移植したことがありました。
https://zenn.dev/tadsan/articles/50c0c2b9fd443e
アルゴリズムがとても簡単なのでPHPでも簡単に動かせるので便利です。
ところで、先述のGoogle社のブログにはこんなことが書いてあります。


 今後の展開
現在 BudouX は ICU (International Components f...]]></description><link>https://zenn.dev/pixiv/articles/f434bdff2e4543</link><guid isPermaLink="true">https://zenn.dev/pixiv/articles/f434bdff2e4543</guid><pubDate>Tue, 31 Dec 2024 14:24:37 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--mI7Zchg9--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:%25E8%25AA%25AD%25E3%2581%25BF%25E3%2582%2584%25E3%2581%2599%25E3%2581%2584%25E6%2594%25B9%25E8%25A1%258C%25E3%2581%25AE%25E3%2581%259F%25E3%2582%2581%25E3%2581%25AE%25E8%25BB%25BD%25E9%2587%258F%25E3%2581%25AA%25E5%2588%2586%25E3%2581%258B%25E3%2581%25A1%25E6%259B%25B8%25E3%2581%258D%25E5%2599%25A8%25E3%2582%2592PHP%25E3%2581%25A7%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_34:%25E3%2581%25AB%25E3%2582%2583%25E3%2582%2593%25E3%2581%25A0%25E3%2583%25BC%25E3%2581%2599%25E3%2582%258F%25E3%2582%2593%2Cx_220%2Cy_108/bo_3px_solid_rgb:d6e3ed%2Cg_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzZhMDc3ZWRhZTMuanBlZw==%2Cr_20%2Cw_90%2Cx_92%2Cy_102/co_rgb:6e7b85%2Cg_south_west%2Cl_text:notosansjp-medium.otf_30:pixiv%2Cx_220%2Cy_160/bo_4px_solid_white%2Cg_south_west%2Ch_50%2Cl_fetch:aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyL2UxZjAzNDJjNDUuanBlZw==%2Cr_max%2Cw_50%2Cx_139%2Cy_84/v1627283836/default/og-base-w1200-v2.png" length="0" type="image/png"/><dc:creator>にゃんだーすわん</dc:creator></item><item><title><![CDATA[Docker初心者がphp+apache+mysqlの開発・検証環境を構築する]]></title><description><![CDATA[
 経緯
phpを全く知らない人間にphpのossについて検証・調査するようにというお達しが来ました。
ossのシステム要件を見ると、linux系のosの指定、 apache、 mysql、 phpのversionにも色々指定があったので、dockerを使って検証することを決意したのでありました。（dockerの名前だけは知っていたので、やってみたいという気持ちがありました）

 問題点
社内の人間でdockerを知っている人がほとんどいません。また、osもwindows8.1、 10、 macOSなどなど
いざ開発となっても、問題が起こりそうなにおいがプンプンします

 目標

doc...]]></description><link>https://zenn.dev/shikazuki/articles/5934f3c503c02deab766</link><guid isPermaLink="true">https://zenn.dev/shikazuki/articles/5934f3c503c02deab766</guid><pubDate>Tue, 31 Dec 2024 12:57:24 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--JI_HRRsY--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:Docker%25E5%2588%259D%25E5%25BF%2583%25E8%2580%2585%25E3%2581%258Cphp%252Bapache%252Bmysql%25E3%2581%25AE%25E9%2596%258B%25E7%2599%25BA%25E3%2583%25BB%25E6%25A4%259C%25E8%25A8%25BC%25E7%2592%25B0%25E5%25A2%2583%25E3%2582%2592%25E6%25A7%258B%25E7%25AF%2589%25E3%2581%2599%25E3%2582%258B%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:shikazuki%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyL2JlZDgyOGI0ZDUuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png" length="0" type="image/png"/><dc:creator>shikazuki</dc:creator></item><item><title><![CDATA[【なろう小説API】PHPでなろうAPIを叩いて「小説家になろう」独自検索フォームを作成する]]></title><description><![CDATA[
 なろう小説APIとは
「小説家になろう」が提供している公式APIです。

なろう小説APIでは小説家になろうに掲載されている作品情報を取得できます。
なろうAPIはHTTPでのリクエストに対してJSON形式、JSONP形式又はYAML形式、PHPのserializeで応答します。
実際に作品のデータが修正されてからなろうAPIに反映されるまで平均5分程度(最大2時間)の誤差があります。
なろうデベロッパーより

公式の検索が提供しているものと同様の結果を返却してくれます。
今回は備忘として残すため、本記事を作成しています。

 利用制限

利用制限は現在、休止しています。
負荷状況に...]]></description><link>https://zenn.dev/saikofall/articles/2c0c723bd3363f</link><guid isPermaLink="true">https://zenn.dev/saikofall/articles/2c0c723bd3363f</guid><pubDate>Mon, 30 Dec 2024 14:05:31 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--3LPn1yTM--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:%25E3%2580%2590%25E3%2581%25AA%25E3%2582%258D%25E3%2581%2586%25E5%25B0%258F%25E8%25AA%25ACAPI%25E3%2580%2591PHP%25E3%2581%25A7%25E3%2581%25AA%25E3%2582%258D%25E3%2581%2586API%25E3%2582%2592%25E5%258F%25A9%25E3%2581%2584%25E3%2581%25A6%25E3%2580%258C%25E5%25B0%258F%25E8%25AA%25AC%25E5%25AE%25B6%25E3%2581%25AB%25E3%2581%25AA%25E3%2582%258D%25E3%2581%2586%25E3%2580%258D%25E7%258B%25AC%25E8%2587%25AA%25E6%25A4%259C%25E7%25B4%25A2%25E3%2583%2595%25E3%2582%25A9%25E3%2583%25BC%25E3%2583%25A0%25E3%2582%2592%25E4%25BD%259C%25E6%2588%2590%25E3%2581%2599%25E3%2582%258B%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:saikofall%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EvQUNnOG9jTEY5U0g1eEUzSG9UZ2dQbTVEYXRTa1lJLV9ualUwWTFoMDFwR3FEMWtmamV4VVZ3PXM5Ni1j%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png" length="0" type="image/png"/><dc:creator>saikofall</dc:creator></item><item><title><![CDATA[Laravel Sail を使ったチーム開発の始め方]]></title><description><![CDATA[
 大まかな流れ
Laravel Sail」を使用してチーム開発を行う場合，下記の手順となる．


一人の開発者がプロジェクトを作成し，GitHub にソースコードを push する．


他の開発者は ↑ で作成された GitHub リポジトリをクローンし，手元で開発をすすめる．


クローンした後にいくつかの手順が必要となる．


本記事は，既存のプロジェクトのリポジトリをクローンし，Docker 上で動作させるための手順を記載する．

 事前準備
docker が動く状態にしておく．
docker -v

Docker version 20.10.12, build e91ed57...]]></description><link>https://zenn.dev/taroosg/articles/20241229150113-2a1124f85616f4</link><guid isPermaLink="true">https://zenn.dev/taroosg/articles/20241229150113-2a1124f85616f4</guid><pubDate>Sun, 29 Dec 2024 06:10:40 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--Vrdm_mPr--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:Laravel%2520Sail%2520%25E3%2582%2592%25E4%25BD%25BF%25E3%2581%25A3%25E3%2581%259F%25E3%2583%2581%25E3%2583%25BC%25E3%2583%25A0%25E9%2596%258B%25E7%2599%25BA%25E3%2581%25AE%25E5%25A7%258B%25E3%2582%2581%25E6%2596%25B9%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:Taro%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyL2MyOGZiYzgwODUuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png" length="0" type="image/png"/><dc:creator>Taro</dc:creator></item><item><title><![CDATA[命名規則に従わない場合の多対多連携]]></title><description><![CDATA[
 なんとなくの流れ
命名規則に従っていない場合は，モデルの設定でカスタマイズする．例えば，ユーザのフォロー機能を実装したい場合は下記の流れとなる．


フォロー関係を表す中間テーブル（follows）を作成する．


User モデルに belongsToMany を 2 つ追加する．



 中間テーブルの作成
マイグレーションファイルの例
// ...

public function up()
{
  Schema::create('follows', function (Blueprint $table) {
    $table-&gt;id();
    // 🔽 user...]]></description><link>https://zenn.dev/taroosg/articles/20241229143613-262e40acc003c0</link><guid isPermaLink="true">https://zenn.dev/taroosg/articles/20241229143613-262e40acc003c0</guid><pubDate>Sun, 29 Dec 2024 05:43:19 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--taTaMCjc--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:%25E5%2591%25BD%25E5%2590%258D%25E8%25A6%258F%25E5%2589%2587%25E3%2581%25AB%25E5%25BE%2593%25E3%2582%258F%25E3%2581%25AA%25E3%2581%2584%25E5%25A0%25B4%25E5%2590%2588%25E3%2581%25AE%25E5%25A4%259A%25E5%25AF%25BE%25E5%25A4%259A%25E9%2580%25A3%25E6%2590%25BA%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:Taro%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyL2MyOGZiYzgwODUuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png" length="0" type="image/png"/><dc:creator>Taro</dc:creator></item><item><title><![CDATA[Laravelのマイグレーションの基本的なしくみ]]></title><description><![CDATA[初見でマイグレーションを見たときに意味がわからないので，最初に押さえておくと良いポイントのまとめ．

 マイグレーションの基本的なしくみ
Laravel におけるマイグレーションが実行されるときの流れは以下のようになる．


マイグレーションファイルの作成


php artisan make:migration コマンドを使用して新しいマイグレーションファイルを作成する．このファイルにはデータベーステーブルの作成，変更，削除などの操作を定義するものである．



マイグレーションファイルの編集


生成されたマイグレーションファイルを編集して，実行するデータベースの操作（テーブルの作成...]]></description><link>https://zenn.dev/taroosg/articles/20241229143607-5d6b9fd45ef16f</link><guid isPermaLink="true">https://zenn.dev/taroosg/articles/20241229143607-5d6b9fd45ef16f</guid><pubDate>Sun, 29 Dec 2024 05:43:18 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--sf0-OW1Z--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:Laravel%25E3%2581%25AE%25E3%2583%259E%25E3%2582%25A4%25E3%2582%25B0%25E3%2583%25AC%25E3%2583%25BC%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%25B3%25E3%2581%25AE%25E5%259F%25BA%25E6%259C%25AC%25E7%259A%2584%25E3%2581%25AA%25E3%2581%2597%25E3%2581%258F%25E3%2581%25BF%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:Taro%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyL2MyOGZiYzgwODUuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png" length="0" type="image/png"/><dc:creator>Taro</dc:creator></item><item><title><![CDATA[N + 1 問題 is 何]]></title><description><![CDATA[DB のデータを扱っているときに発生する N + 1 問題についての解説．

 N + 1 問題
データを取得する際のコードの書き方が問題となって発生する事象「N + 1 問題」がある．

 何が起きているのか
この問題は hasMany や belongsTo を用いた連携をしている場合に発生する．
例えば，下記のようにユーザが投稿した tweet の一覧を取得する場合を考える．
$tweets = Tweet::query()
  -&gt;where('user_id', auth()-&gt;id())
  -&gt;get();
また，ビューファイルでは投稿したユーザ名を取得す...]]></description><link>https://zenn.dev/taroosg/articles/20241229143610-1cc44a86c02551</link><guid isPermaLink="true">https://zenn.dev/taroosg/articles/20241229143610-1cc44a86c02551</guid><pubDate>Sun, 29 Dec 2024 05:43:18 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--gaFlCw1p--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_66:N%2520%252B%25201%2520%25E5%2595%258F%25E9%25A1%258C%2520is%2520%25E4%25BD%2595%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:Taro%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyL2MyOGZiYzgwODUuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png" length="0" type="image/png"/><dc:creator>Taro</dc:creator></item><item><title><![CDATA[Inertia.js v2.0で追加された新機能を実際に実装してみた]]></title><description><![CDATA[
 概要
2週間前、Inertia.jsの2.0が正式にリリースされました。
今回のアップデート内容についてはこちらから確認することができます。
v2.0になって非同期リクエストの機能が大幅にサポートされました。
この記事では、新たに追加された以下の非同期リクエストの機能を実際に実装して動作とコードをまとめます。

Polling
Prefetching
Deferred props
Infinite scrolling
Lazy loading data on scroll


 動作環境

Laravel11
Vue3


 Pooling
サーバーに定期的に通信してpropsを更新...]]></description><link>https://zenn.dev/issei_miyara/articles/3d8cbc5789f0ac</link><guid isPermaLink="true">https://zenn.dev/issei_miyara/articles/3d8cbc5789f0ac</guid><pubDate>Sat, 28 Dec 2024 05:39:07 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--IkwWT1ZN--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:Inertia.js%2520v2.0%25E3%2581%25A7%25E8%25BF%25BD%25E5%258A%25A0%25E3%2581%2595%25E3%2582%258C%25E3%2581%259F%25E6%2596%25B0%25E6%25A9%259F%25E8%2583%25BD%25E3%2582%2592%25E5%25AE%259F%25E9%259A%259B%25E3%2581%25AB%25E5%25AE%259F%25E8%25A3%2585%25E3%2581%2597%25E3%2581%25A6%25E3%2581%25BF%25E3%2581%259F%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:issei%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzY2MWUwMzE3ZmUuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png" length="0" type="image/png"/><dc:creator>issei</dc:creator></item><item><title><![CDATA[Laravel socialiteを使ってGitHubで認証できるようにしてみた]]></title><description><![CDATA[
 はじめに
最近では、多くのウェブサイトでGitHubやGoogleなどのソーシャルアカウントを使ったログイン機能を目にします。こうした機能は、ユーザーが新たにアカウントを作成する手間を省き、スムーズな操作体験を提供するため、非常に便利です。この記事では、Laravelでソーシャルアカウントを使った認証機能を実装する方法を解説します。具体的には、Laravelの便利なライブラリ「Socialite」を使って、GitHubアカウントを利用した認証機能を構築する手順をご紹介します。

 前提条件
今回の記事はあらかじめLaravelのユーザー認証機能が実装されていることを前提としております...]]></description><link>https://zenn.dev/snake12379/articles/2ffea9af982302</link><guid isPermaLink="true">https://zenn.dev/snake12379/articles/2ffea9af982302</guid><pubDate>Fri, 27 Dec 2024 16:44:52 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--8yRC4duB--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:Laravel%2520socialite%25E3%2582%2592%25E4%25BD%25BF%25E3%2581%25A3%25E3%2581%25A6GitHub%25E3%2581%25A7%25E8%25AA%258D%25E8%25A8%25BC%25E3%2581%25A7%25E3%2581%258D%25E3%2582%258B%25E3%2582%2588%25E3%2581%2586%25E3%2581%25AB%25E3%2581%2597%25E3%2581%25A6%25E3%2581%25BF%25E3%2581%259F%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:wataru%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EtL0FPaDE0R2gweVJaYUR2UVp5bW9XbFZ2T3o0X0ZGZ0JrSnhFM0xBb2lGVUl3PXM5Ni1j%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png" length="0" type="image/png"/><dc:creator>wataru</dc:creator></item><item><title><![CDATA[PHP Conference Japan 2024 に登壇させていただきました]]></title><description><![CDATA[こんにちは！TechBowlでProduct Engineerをやっている梶川(@kajitack)です。
仕事では主にTechTrainの開発を担当しています。
来年の目標はエンジニアとしてコードを書きつつ、トライアスリートとしてアイアンマンレース完走です！
この記事は、2024年12月に開催されたPHP Conference Japan 2024の参加レポートです。

 PHP Conference Japan 2024
https://phpcon.php.gr.jp/2024
PHPカンファレンスは、PHP関連の技術を主とした技術者カンファレンスです。
2000年に日本のユーザ会...]]></description><link>https://zenn.dev/techtrain_blog/articles/cb977bd7d773d7</link><guid isPermaLink="true">https://zenn.dev/techtrain_blog/articles/cb977bd7d773d7</guid><pubDate>Fri, 27 Dec 2024 08:05:46 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--3eN0OCIl--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:PHP%2520Conference%2520Japan%25202024%2520%25E3%2581%25AB%25E7%2599%25BB%25E5%25A3%2587%25E3%2581%2595%25E3%2581%259B%25E3%2581%25A6%25E3%2581%2584%25E3%2581%259F%25E3%2581%25A0%25E3%2581%258D%25E3%2581%25BE%25E3%2581%2597%25E3%2581%259F%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_34:%25E6%25A2%25B6%25E5%25B7%259D%2520%25E7%2590%25A2%25E9%25A6%25AC%2520%252F%2520Kajikawa%2520T...%2Cx_220%2Cy_108/bo_3px_solid_rgb:d6e3ed%2Cg_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzU5NzVhMjI1ZTYuanBlZw==%2Cr_20%2Cw_90%2Cx_92%2Cy_102/co_rgb:6e7b85%2Cg_south_west%2Cl_text:notosansjp-medium.otf_30:TechTrain%25E3%2583%2586%25E3%2583%2583%25E3%2582%25AF%25E3%2583%2596%25E3%2583%25AD%25E3%2582%25B0%2Cx_220%2Cy_160/bo_4px_solid_white%2Cg_south_west%2Ch_50%2Cl_fetch:aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzI2MTkxNDViMzEuanBlZw==%2Cr_max%2Cw_50%2Cx_139%2Cy_84/v1627283836/default/og-base-w1200-v2.png" length="0" type="image/png"/><dc:creator>梶川 琢馬 / Kajikawa Takuma</dc:creator></item><item><title><![CDATA[【備忘録】WordPressのブログカード（embed）をカスタマイズ]]></title><description><![CDATA[
 背景
仕事でWordPress利用した実装があって、そのときにブログカードのカスタマイズが必要だった。
今までもWordPressの実装してきたけど、ブログカードはあまりカスタマイズする機会なかったので、備忘録兼ねて書いておく！

 そもそも埋め込みをカスタマイズするには…
wp-includes/theme-compact/embed-content.php をコピー。
コピーしたembed-content.phpをwp-content/themes/{適用させたいテーマ}内に入れ込みます。

 対象ページによってスタイルを変える（クラスの付け替え）
embedってiframeで埋...]]></description><link>https://zenn.dev/rainymoment0616/articles/customize-wp-embed</link><guid isPermaLink="true">https://zenn.dev/rainymoment0616/articles/customize-wp-embed</guid><pubDate>Fri, 27 Dec 2024 05:18:58 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--NqPW6m9b--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:%25E3%2580%2590%25E5%2582%2599%25E5%25BF%2598%25E9%258C%25B2%25E3%2580%2591WordPress%25E3%2581%25AE%25E3%2583%2596%25E3%2583%25AD%25E3%2582%25B0%25E3%2582%25AB%25E3%2583%25BC%25E3%2583%2589%25EF%25BC%2588embed%25EF%25BC%2589%25E3%2582%2592%25E3%2582%25AB%25E3%2582%25B9%25E3%2582%25BF%25E3%2583%259E%25E3%2582%25A4%25E3%2582%25BA%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:rainymoment0616%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EtL0FPaDE0R2dpWFRuM0w0a2hGZG9XUzg3dkFrZjFsT3VTTW5kNUV3aC1NRjdHPXM5Ni1j%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png" length="0" type="image/png"/><dc:creator>rainymoment0616</dc:creator></item><item><title><![CDATA[Laravel公式VSCode拡張機能の便利さと導入メリットを解説]]></title><description><![CDATA[
 はじめに
こんにちは、booost technologiesバックエンドエンジニアのma_meです。
今回は2024年12月、Laravel公式から公開されたVSCode用の公式拡張機能を紹介いたします。
以下が公式プラグインページとアナウンスのリンクです。

 公式プラグインページ
https://marketplace.visualstudio.com/items?itemName=laravel.vscode-laravel

 アナウンス記事
https://laravel-news.com/laravel-vs-code-extension-public-beta
このアナ...]]></description><link>https://zenn.dev/booost/articles/6471086fd29bb0</link><guid isPermaLink="true">https://zenn.dev/booost/articles/6471086fd29bb0</guid><pubDate>Fri, 27 Dec 2024 04:24:32 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--iFBkI403--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:Laravel%25E5%2585%25AC%25E5%25BC%258FVSCode%25E6%258B%25A1%25E5%25BC%25B5%25E6%25A9%259F%25E8%2583%25BD%25E3%2581%25AE%25E4%25BE%25BF%25E5%2588%25A9%25E3%2581%2595%25E3%2581%25A8%25E5%25B0%258E%25E5%2585%25A5%25E3%2583%25A1%25E3%2583%25AA%25E3%2583%2583%25E3%2583%2588%25E3%2582%2592%25E8%25A7%25A3%25E8%25AA%25AC%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_34:ma_me%2Cx_220%2Cy_108/bo_3px_solid_rgb:d6e3ed%2Cg_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzY1MDIxZThkNDcuanBlZw==%2Cr_20%2Cw_90%2Cx_92%2Cy_102/co_rgb:6e7b85%2Cg_south_west%2Cl_text:notosansjp-medium.otf_30:booost%2520technologies%2Cx_220%2Cy_160/bo_4px_solid_white%2Cg_south_west%2Ch_50%2Cl_fetch:aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzMzZjVkODUyNTcuanBlZw==%2Cr_max%2Cw_50%2Cx_139%2Cy_84/v1627283836/default/og-base-w1200-v2.png" length="0" type="image/png"/><dc:creator>ma_me</dc:creator></item><item><title><![CDATA[PHPの基礎知識]]></title><description><![CDATA[
 phpコマンド



コマンド
内容




php —help
PHPのヘルプを表示


php —v
PHPのバージョン確認


php -a
PHPをターミナル上で動かせるようにする


exit
終了


php -S localhost:8080
8080ポートのサーバーを起動する




 よく使う記述



項目
内容




include _DIR_. ‘/パス’;
・他のファイルを読み込む



・DIR→今開いているファイルがあるディレクトリを指す



・ファイルが存在しなくても、includeの記述の後の処理も実行される（エラーは出力されるが、継続して処理が...]]></description><link>https://zenn.dev/396/articles/71534f368f8e2b</link><guid isPermaLink="true">https://zenn.dev/396/articles/71534f368f8e2b</guid><pubDate>Wed, 25 Dec 2024 15:38:57 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--56vvHlRs--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_66:PHP%25E3%2581%25AE%25E5%259F%25BA%25E7%25A4%258E%25E7%259F%25A5%25E8%25AD%2598%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:Mii%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyL2Q0MDFhZjY1NjQuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png" length="0" type="image/png"/><dc:creator>Mii</dc:creator></item></channel></rss>