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

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

wordpressでテーマを作る時に必要なファイル達

## はじめに
wordpressでテーマを作ろうと思ったけど、何のファイルを作れば良いかわからない。
調べても見つからなかったので、自作してみました。

## リスト
– [x] function.php
– [x] footer.php
– [x] sidebar.php(サイドバーがないデザインには不要)
– [x] header.php
– [x] 404.php
– [x] search.php
– [x] archive.php
– [x] date.php
– [x] author.php
– [x] tag.php
– [x] category.php
– [x] page.php
– [x] single.php
– [x] home.php
– [x] comments.php(コメント機能がないデザインには不要)
– [x] index.php
– [x] style.css

### function.php
関数を入れるファイルです。

#### テンプレート
“`php

元記事を表示

Laravelコーディングよくやる集2022

:::note
この記事は「[【マイスター・ギルド】本物のAdvent Calendar 2022](https://adventar.org/calendars/7794)」18日目の記事です。
:::

LaravelでWebアプリケーションを開発しているんですが、これは毎回書きそうだなーというのがいくつかあったので、それをまとめてみました。開発はまだまだ途中なので、これから変化していく可能性もありますが。

# グローバルスコープ

グローバルスコ―プを使って`DBのデータ + 何らかの条件付き`を表現します。それを使えば疑似的[^globalscope]に条件付きのモデルが定義できます。

例えば`User`モデルがあり、利用者が閲覧可能かどうかを`is_visible`で表したデータがあるとき、

“`php
class VisibleUser extends User
{
protected $table = ‘users’;

protected $hidden = [
‘is_visible’, // 持つ必要が無い
];

元記事を表示

コードネームについて

## はじめに
オフィスで雑談するネタがないなー、と悩んでいるあなた!
コードネームの話で盛り上がってみませんか?
IT業界であれば、使用技術のバージョンのコードネームの話は結構盛り上がるのでおすすめです!

この記事では、PHPやJavaSceipt関連のコードネームについて、ご紹介します。

## 対象者
この記事は下記のような人を対象にしています。

– 駆け出しエンジニア
– プログラミング初学者
– 職場の雑談ネタに困ってる人

## 結論
IT業界なら、コードネームの話は絶対盛り上がる!

## MacOSのコードネーム
まずはみんな使ってるMacOSのコードネームについてです。
10.0~10.8まではネコ科の動物の名前。
10.9以降は唐突にカリフォルニアの地名シリーズに変更。ネコ科はネタ切れだったのか…
猫がいる会社に所属している身としては残念です。
ちなみに、10.9以降のデフォルト壁紙はそれぞれの地名をイメージしたものになっているので要チェックです!

| バージョン | コードネーム | 読み方 |意味|リリース|
|—|–

元記事を表示

JavaScriptを書かずにフロントエンドをリッチにする、”Symfony UX”

[Symfony Component Advent Calendar 2022](https://qiita.com/advent-calendar/2022/symfony-component)の24日目の記事です。

## 最初に
[Symfony](https://symfony.com)はPHPのフレームワークのひとつです。しかし、公式サイトの説明文には

> Symfony is a set of PHP Components, a Web Application framework, a Philosophy, and a Community — all working together in harmony.
(SymfonyはPHPコンポーネントのセットで、Webアプリケーションフレームワークで、哲学、そしてコミュニティです。それらがハーモニーを奏でながら動作しています。)

と書かれている通り、PHPコンポーネントのセットで、たくさんのコンポーネントを提供しており、それらを組み合わせてひとつのフレームワークとして動作しています。Symfonyのコンポーネントは、S

元記事を表示

繰り返し(ループ)処理機能(Laravel)

## 始めに
最近よく、ループ処理を実装するので
備忘録として記事にしました。

ループ処理の認識(自分の)
 → ある条件になるまで繰り返し処理すること

## 環境
| 開発環境 |バージョン |
|———–|————|
| __Laravel__ | 8.83.19 |
| __PHP__ | 7.3.10 |

## ループ処理内容

“`PHP:LoopController.php
// ループ処理機能
public function loop()
{
Log::debug(__FUNCTION__);

try {
$i = 0;
// 繰り返し処理(60秒経過するまで)
while(true) {

Log::debug(‘loopメソッドのwhile文処理中’);

// 60秒が経過した時
if($i >= 6) {
// 繰り返し処理を終了する

元記事を表示

指定文字数でランダムな文字列を作成するphp関数を作った

## はじめに
メール認証とかに使えそう…

## コード
“`php
function random_words($limit,$is_flag = 0){
$word = null;
if($is_flag===0){
$base_string = [‘a’,’b’,’c’,’d’,’e’,’f’,’g’,’h’,’i’,’j’,’k’,’l’,’m’,’n’,’o’,’p’,’q’,’r’,’s’,’t’,’u’,’v’,’w’,’x’,’y’,’z’,’A’,’B’,’C’,’D’,’E’,’F’,’G’,’H’,’I’,’J’,’K’,’L’,’M’,’N’,’O’,’P’,’Q’,’R’,’S’,’T’,’U’,’V’,’W’,’X’,’Y’,’Z’,0,1,2,3,4,5,6,7,8,9];
}else if($is_flag===1){
$base_string = [‘a’,’b’,’c’,’d’,’e’,’f’,’g’,’h’,’i’,’j’,’k’,’l’,’m’,’n’,’o’,’p’,’q’,’r’

元記事を表示

phpでメール送信するときに迷惑メール判定されないような関数を作った

## はじめに
phpでメール送信するには、“`mb_send_mail();“`を使うことが多いですが、まれに迷惑メール判定されてしまうことがあります。
そこで、今回は迷惑メール判定されないようなphp自作関数を作ることにしました。

## コード
“`php
‘;
$header = ”;
$header .= ‘Content-Type: text/plain \r\n’;
$header .= ‘Return-Path: ‘ . $from_mail . ‘ \r\n’;
$header .= ‘From: ‘ . $from .’ \r\n’;
$header .= ‘Sender: ‘ . $f

元記事を表示

mpdf×cssに苦戦した備忘録

## mpdfとは
mpdfとは、PDFファイルを作成するPHPのライブラリです。
htmlをpdf形式のファイルにして出力します。このhtmlに対して指定するcssが、mpdfライブラリを通すと全然使えなくて大変だったので、それぞれの解決策の備忘録です。

## break-insideで改ページできない

改ページ位置を指定する`break-inside`が使えないときがあります。

“`css
/* 使いたかったやつ */
div {break-inside: avoid;}
“`

途中でページをまたぎたくない要素があったのでどうにかして指定したい。
→divに対して**heightの指定**をしたら、その高さが入りきらない場合に勝手に改ページしてくれるようになりました!
“`css
/* 解決! */
div {height: 300px;}
“`

## floatが使えない
配置を決める系のCSSがことごとく簡単に使えません!!!
htmlをブラウザで見るとcssが効いているのにmpdfを通したファイルでは効いていない現象。
`float`を使うときは、必ず`wi

元記事を表示

モーダルでバリデーションのエラー時モーダルにエラーメッセージ表示

# 今回の対応について
今回laravelを使用し、モーダル画面で送信ボタンが押下された時にバリデーションチェックを行い、
モーダル画面にメッセージを表示するという事をしたく、実装を行いました。

– モーダル画面で送信を押下します。押下時はajax通信でcontrollerへ飛ばします。
– FormRequestを作成し項目名のバリデーションを追加します。
– controllerへ飛んできたときにバリデーションでひかかった場合は
ajaxの方でfailとして受け取ります。バリデーションエラーのステータスは422です。
– ステータスが422の時にメッセージを追加するように行いました。

“`js:modal_submit.js
$(document).on(‘click’,’#form_submit’,function(event) {
var $form = $(‘#form’);
var id = $(‘#id’).val();
$form.attr(‘action’, ‘{{ url(‘aaaa/aaaa’)

元記事を表示

正規表現(PHP)

正規表現のサンプルプログラムです。
今回は拡張子が「.jpg」または「.png」だったら「YES」、それ以外だったら「NO」をブラウザに出力する仕様です。

“`HTML






正規表現テスト


元記事を表示

BEAR.SundayとFastlyで無期限キャッシュのコンテンツを配信する

# はじめに
前日までは @koriym さんのキャッシュ設計に関する投稿でした。
この記事ではBEAR.Sundayのキャッシュ、イベントドリブンキャッシュ、失効済みコンテンツの配信(Stale)について具体的な実装内容を紹介します。

# アプリケーションキャッシュを設定する
## キャッシュの指定方法について
現在フレームワークが標準で提供するキャッシュの指定方法は以下の二つです。

### #[Cacheable]
* `#[Cacheable]` は従来よりあるキャッシュ指定アトリビュート(アノテーション)です。
* TTLの指定 (`#[Cacheable(expiry=”medium”)]`) 、もしくは無期限(`#[Cacheable]`)で指定できます。
* 無期限でキャッシュを設定した場合、同一Resource内の `on(Put|Post|Delete)` の実装か、キャッシュを消す処理( `#[Refresh]` や `#[Purge]` 、もしくは `QueryRepository` の直接操作など)が必要です。

“`php

元記事を表示

【Laravel6】ユーザー招待機能の詳細設計と実装(5)ユーザー登録フォームと登録処理

# **はじめに**

ユーザー招待機能の詳細設計と実装(5) ユーザー登録フォームと登録処理 について投稿します。

Web業界実務未経験での転職活動用にポートフォリオとしてはじめて作成したWebアプリ開発のオリジナルの機能として **家族ユーザー招待機能** を実装したときのものです。

※ 作成したポートフォリオは、絵本を読み聞かせしたことの記録・管理を、家族と共有できるWebアプリケーションです(作成期間は、2021年2月末〜7月)

https://qiita.com/ryamate/items/c3b4f63f8d94ab090bf8

## 投稿内容(全5回)

本連載は以下の順番で投稿します。

– [招待ユーザー機能の概要と基本設計](https://qiita.com/ryamate/items/751b06dc95ab9b24e361)
– **招待ユーザー機能の詳細設計と実装**
– [(1) 招待メール送信フォーム](https://qiita.com/ryamate/items/a1d0a5b1db9d11a69671)
– [(2) マイグ

元記事を表示

【PHP8.1~】列挙型(enum)を使ってセレクトボックスを作ってみる

## 概要

php8.1から列挙型(enum)が使える様になりましたね。

今まで定数ファイルに書いていたような事をenumを使って良い感じにしてみます。

## 実践

ステータスという名目のセレクトボックスを作ります。

– 要件
– 選択肢は「未確定」,「完了」,「キャンセル」
– optionのvalueにはキーが入る様に
– optionのlabelには日本語のステータス名

### コード

“`php:enum
namespace App\Enums;

enum Statuses: string implements Label
{
case PENDING = ‘pending’;
case COMPLETE = ‘complete’;
case CANCEL = ‘cancel’;

public function labelName(): string
{
return match ($this) {
self::PENDING => ‘未確定’,

元記事を表示

時間を扱う、”Clock”

[Symfony Component Advent Calendar 2022](https://qiita.com/advent-calendar/2022/symfony-component)の23日目の記事です。

## 最初に
[Symfony](https://symfony.com)はPHPのフレームワークのひとつです。しかし、公式サイトの説明文には

> Symfony is a set of PHP Components, a Web Application framework, a Philosophy, and a Community — all working together in harmony.
(SymfonyはPHPコンポーネントのセットで、Webアプリケーションフレームワークで、哲学、そしてコミュニティです。それらがハーモニーを奏でながら動作しています。)

と書かれている通り、PHPコンポーネントのセットで、たくさんのコンポーネントを提供しており、それらを組み合わせてひとつのフレームワークとして動作しています。Symfonyのコンポーネントは、S

元記事を表示

【初心者】よく使うコマンド,sql, テーブル操作,ブラウザでよく使うショートカット

# ■はじめに
コマンドを打つ際に毎回調べてという事が面倒くさいと思ったことはありませんか?
今の時代調べれば何でも出てきますから、何回も調べたらいいと思っていませんか?
でも、マニュアルを見ても、全てが1ページにまとまっていることは少ないと思います。
私はPHPの初心者ですが、自分がよく使うコマンドを、毎回作業中に手を止めて調べなくてもいいようにまとめました。

# ■よく使うコマンド

### サーバーを起動する
“`bash
php artisan serve
“`

portオプションは、起動する開発サーバーのポート番号を明示的に指定できます。例えば、ポート番号を「8080」に指定したい場合は、以下のように記述します。
“`bash
php artisan serve –port=8080
“`

### データベースに接続
“`bash
mysql -u root -p
“`
-u —– 「ユーザを指定する」というオプション
-u root —– 「rootユーザで」みたいな意味
-p —– 「パスワードを指定してログインする」というオプシ

元記事を表示

【初心者必見】php 変数名の付け方

# ■はじめに
この記事は、まだPHPの学習中の筆者が書いています。
学習中、問題を解いているだけでも、様々なエラーにぶつかります。
私と同じように学習している周りは普通にできることも、私はできないの?とか、私向いてないじゃないかと思った時に、私は、時間がかかっても、変数名をつけるようになりました。
その結果、”型が違いいます”とういエラーを激減させることができました。
同じような境遇の方たちに、ぜひ読んでほしいです。

– [変数の命名規則について](#■変数の命名規則について)
– – [名前の記法ルール](#名前の記法ルール)
– [きれいな変数名を付けるための『5つのこと』](#■きれいな変数名を付けるための『5つのこと』)
– [まとめ](#■まとめ)
– – [最初に工夫したこと](#最初に工夫したこと)
– – [最近変わった工夫の内容](#最近変わった工夫の内容)
– – [最近感じるようになったこと](#最近感じるようになったこと
)

# ■変数の命名規則について

コーディングは、後から修正するときに読みやすくするためのルールに則って行われます。

元記事を表示

PHPの基礎③ (独学エンジニア レッスン11より)

# 目標
今回やること
* PHPの基礎を学ぶ③

タスクばらし
* 制御構造
* 条件分岐の基礎
* 繰り返し処理の基礎
* クイズ
* 発展

予備知識
テスト駆動開発
①テストコード書いてから、アプリケーションコードを書く
* アプリケーションコード用のファイルを作成し、処理を実行する関数を定義する
* テストコード用のファイルを作成し、上の関数の動作をテストする
* アプリケーションコードをテストが通るように書く
* テストが通ったらコードをリファクタリングする

②アプリケーションコードにcalculateメソッドを定義し、テストコードでcalculateメソッドを呼び出そう

# 制御構造
* 式は値があるものすべて

* 文は末尾に ; がついたもの、もしくは中括弧でグループ化されたもの

* 構文は文法・書式のこと(if文など)

* 言語構造は、言語を構成する要素のこと(ifなど)

* 制御構造は、プログラムの流れを制御するもの(言語構造の一種)
プログラムは上か

元記事を表示

エンジニアになれないへっぽこな私が実装したタグをつける機能とタグの検索機能(n番煎じ)

この記事は[TechCommit Advent Calendar 2022](https://adventar.org/calendars/7673)の22日目の記事です。
なんとなく参加しました。

# 注意
ただの個人用メモ
解説用に現物の一部を改変,省略,簡易化,簡略化などしています。
やり方が間違っている可能性が高いです。
参考にする場合は**自己責任**でお願いします。

# バージョン,環境など
バック:php,laravel
フロント:html,css,javascript,Vue,axios
自分ではわからないもの:Inertia

|言語 フレームワーク|バージョン|
|–|–|
|PHP|8.0.24|
|Laravel|9.43.0|
|Vue|3.2.31|
|axios|0.25|

# 事の始まり
個人開発でブックマークにタグを付けて保存するアプリを開発しているから

# ディレクトリ構造
今回の解説に必要な分だけ取り出しています。
repositoryディレクトリは自分でつくりました。[^2]
![ディレクトリ構造.drawio.png](https:

元記事を表示

PHP ファイルパス(文字列)のファイル部分以外を取得する

:::note info
この記事は[miriwoお一人様 Advent Calendar 2022](https://qiita.com/advent-calendar/2022/miriwo)の22日目の記事です
:::

# 概要

– PHPの組み込み関数を使ってファイルパスから、ファイル名を除いたパスを取得する方法をまとめる。

# 方法

– 組み込み関数の`dirname()`を使う。
– `dirname()`は下記のように使う。

“`php
dirname(ファイルパス, 階層指定[オプション])
“`

– 例えば`foo/bar/hoge/piyo/test.csv`というファイル名込のパス情報があったとする。これのファイル名を除いたパスを取得したい場合下記の様に記載し実行する。

“`php
$fullPath = ‘foo/bar/hoge/piyo/test.csv’;

echo dirname($fullPath);
// foo/bar/hoge/piyoが出力される
“`

元記事を表示

【初心者向け】Wordpressテーマを自作する[footer.php]

:::note info
ファイルの構造や解説等、Wordpress(以下、WP)のテーマを自作する際の基本的な部分は、こちらの記事で紹介しています。
+ [【初心者向け】Wordpressテーマを自作する際に分かってると良いかもしれない事](
https://qiita.com/makkie/items/dc764c2845492079c0af)
+ `index.php`のコードを知りたいよって方はこちら
[【初心者向け】Wordpressテーマを自作する[index.php]](https://qiita.com/makkie/items/b5231a9f63b076c70af8)
+ `header.php`のコードを知りたいよって方はこちら
[【初心者向け】Wordpressテーマを自作する[header.php]](https://qiita.com/makkie/items/6d19ec0da990486ec6ab)
:::

ここでは、WPのテーマを作る上で必須の`footer.php`のコードを交えた解説を行います。
とりあえず解説はいいからコードだけ、の方は以下をど

元記事を表示

OTHERカテゴリの最新記事