PHP関連のことを調べてみた

PHP関連のことを調べてみた

WordPressにおけるグローバル変数$postについて

WordPressにおけるグローバル変数 `$post` は、WordPressのループ中で現在処理している投稿(またはカスタムポストタイプ)のオブジェクトを指します。この変数はWordPressコアによって自動的に設定され、投稿の詳細な情報を含んでいます。例えば、投稿ID、タイトル、内容(コンテント)、投稿日時、スラッグなどが含まれます。

## グローバル変数 `$post` の役割

– 投稿データのアクセス:テンプレートファイルやプラグイン、テーマの関数内で、現在表示または処理中の投稿データにアクセスするために使用されます。
– テンプレートタグのコンテキスト: `the_title()`, `the_content()`, `the_permalink()` などのテンプレートタグは、 `$post` 変数からデータを取得し、現在の投稿に関連する情報を出力します。

## どのように機能するか

WordPressのページを表示する際、メインのクエリ(WordPressループ)を実行して投稿データを取得します。このとき、ループの各イテレーションで `$post` 変数は現在の

元記事を表示

配列関数・続き

## はじめに

配列関数を整理する。二回目。

### array_search
特定の値を検索する

“`php:array_search.php
$data = [‘PHP’, ‘Javascript’, ‘PHP’, ‘Java’, ‘C#’, ’15’];
$data2 = [‘X’ => 10, ‘Y’ => 20, ‘Z’ => 30];
var_dump(array_search(‘Javascript’, $data); //int(1)
var_dump(array_search(‘PHP’, $data); //int(0)
var_dump(array_search(‘Java’, $data); //bool(false)
var_dump(array_search(15, $data); //int(5)
var_dump(array_search(15, $data, true); //bool(false)
var_dump(array_search(10, $data2); //string(1) “X”
“`

### in_array

要素の

元記事を表示

Laravel11のDockerとか自動テストの環境を作成した

# はじめに

こんにちは、エンジニアのkeitaMaxです。

前回作成したLaravelの色々やった記事がLaravel10でやっていたので、同じ環境をLaravel11で作ってみました。

# Git

https://github.com/NiheiKeita/docker-laravel11-example-app

# やっていること

やっていることについては前回の以下の記事を読んでいただけると幸いです。

https://qiita.com/keitaMax/items/c7dec65eeb1079cca09e

# おわりに

この記事での質問や、間違っている、もっといい方法があるといったご意見などありましたらご指摘していただけると幸いです。

最後まで読んでいただきありがとうございました!

# Laravel10のリポジトリ

https://github.com/NiheiKeita/docker-laravel-app

元記事を表示

派生元ブランチとの差分のPHPファイル一覧を取得する

必要に迫られてエイリアスを作りました。

`~/.zshrc` に追記する。

“`zsh:~/.zshrc
alias derived-branch=’git show-branch | grep ‘\”*’\” | grep -v “$(git rev-parse –abbrev-ref HEAD)” | head -1 | awk -F’\”[]~^[]’\” ‘\”{print $2}’\”’
alias derived-diff=”git –no-pager diff –name-only \$(derived-branch)”
alias derived-php-diff=”git –no-pager diff –name-only \$(derived-branch) — ‘*.php'”
“`

派生元ブランチを取得します。
ローカルにないとブランクになります。

“`zsh
$ derived-branch
“`

派生元ブランチと差分のファイル一覧をすべて表示します。

“`zsh
$ derived-diff
“`

派生元ブラ

元記事を表示

PHPフレームワークFlowでドメインモデルを元にTBLを作成する①

# 初めに
PHPフレームワークFlowはドメイン駆動設計を用いた実装をするために必要な機能を多く有しており、その中の一つに『ドメインモデルを元に**TBLが自動生成される**』というものがあります。今回はこの機能について基本的な使い方を解説していきます。

# Flowでドメインモデリング
Flowはドメイン駆動設計(DDD)の概念を用いた実装を強く推奨しているフレームワークです。そのため、開発者がDDDを用いた実装がしやすくなるような機能を多数提供しています。

* **ドメインモデルを格納するためのディレクトリ**が最初から用意されている
* **ドメイン知識を表現するためのアノテーション**が用意されている
* ドメインモデルを元に**TBLが自動生成される**
* 自動生成されたTBLへの**CRUDメソッド**が用意されている
* AOPやSignal&Slotなどの**イベント駆動型プログラミング**が実装できる

これらの機能により、以下のような実装が可能になります。
* **記述量の少ないドメインモデルを作成できる**
* **DB, TBLの存在を意識せずに実装でき

元記事を表示

[Best Award 受賞] 初めてのチーム開発で誰かのためになるものを作った話

# 1. はじめに
本記事では、私が初めてチーム開発をした中で経験したこと、学んだことを書いていきます!

チーム開発ってどんなものなんだろう?と思われている方は特に参考になるかと思いますので、まだまだ未熟な私が書いた記事ですが、最後まで読んでいただけると幸いです🙇‍♂️

また、本記事では、私が開発途中に大事だなと感じた部分を

:::note info
ポイント
:::
としてまとめてあります。

# 2. 解決したい課題は?
今回のチーム開発では、テーマが決まっていました。
それは、

**「自分たちの役に立つものを開発せよ」**

というものです。
ですから、ターゲット,作るものは
– **ターゲット: 自分たち**
– **作るもの: 何かしらの課題を解決するもの**

です。

これらを踏まえた上で、様々なアイデアを出していく中、現在のチーム開発で

**チームのみんなが今何をしているかが不透明**

という課題がありました。

その原因が、現在私たちが毎日行っている日報の投稿にありました。
日報はDiscordに毎晩投稿す

元記事を表示

WordPressってなに?どうして使うの?

#### WordPressをインターンで触ったので、備忘録として概要や触ったイメージ、メリットデメリットを記します。

この記事は、

+ WordPressの概要を知りたい人
+ WordPressを始めるか迷ってる人
+ どんな人が使ってるのか知りたい人
+ なんでもいいから早くウェブサイトを作りたい人

向けです

:::note warn
(数十年触っている人からすれば検討外れの内容かもしれません)
:::

# 概要
#### WordPressは、Webサイトを作るためのものです。決まった型の記事や内容を投稿する際に力を発揮します。言語はPHPで書かれていて、バックエンドの処理を担当してます。

例えばあなたが何かの運営者や広報担当者、何かの情報をまとめている人であったとします。あなたは外部にもっと知ってもらうためにウェブサイトを作りたい。

「どんなウェブサイトにしようか、基本的な情報を載せるだけじゃなく、長く使えるサイトにしたいなあ。」

そう考えたとき、定期的に新しい情報を提供したいこともあるでしょう。そこで候補に上がってくるかもしれないのがWo

元記事を表示

Laravel(API)で認証機能を作成してみた。

## はじめに
普段はRailsで実装をしている私が、Laravelで認証機能を作成しました。
「LaravelでAPIモードの実装ってどうやるんだ??」と気になったこともあり、こちらの記事を作成しました。
(ログインのみの実装です)

Laravel初学者の方々への一助になれば幸いです。

**開発環境**
PHP 8.1.27
Laravel 10.46.0

## 実装
### マイグレーション
説明の関係上、ログインに必要なカラムのみ以下に記載しています。
“`database/migrations/2014_10_12_000000_create_users_table.php

元記事を表示

コーディングテスト頻出の内部関数 まとめ(その3 – 配列処理関数)[PHP]

## この記事の目的
未経験エンジニアが転職活動をする際、最初の難関となるのがコーディングテストです。ここを突破しないと面接にすら進めません。
極度のプレッシャーの中、素早く正確に問題を解くためには、**「自分が使っている言語にどのような内部関数があるのか」「どうやって使うのか」など**を事前に把握しておくことが必須と言えます。

そこで、コーディングテスト頻出の内部関数の使い方を、使用例を交えてわかりやすく正確にまとめることにしました。
本記事では、**配列処理のための内部関数**のみを取り上げます。その他の内部関数については、現在に別記事として執筆中です。
(※言語は全てPHPになります)

## はじめに
早速ですが、本記事に登場する関数の一覧です。全部で17個の関数を取り上げます。
“`
1. implode 配列要素を任意の文字列で連結する

2. array_push & 配列の末尾に要素を追加する
3. array_pop & 配列の末尾から要素を1つ取り除く
4. array_unshift & 配列の先頭

元記事を表示

配列関数

## はじめに

配列に対する操作を担う関数を整理する。

## count

要素の数を取得する

“`php:count.php
$data = [‘山田’, ‘掛谷’, ‘日尾’, ‘本多’, ‘矢吹’];
print count($data); // 5
“`

## array_merge

指定された配列要素を連結する

“`php:array_merge.php
$arry1 = [1, 3, 5];
$arry2 = [2, 4, 6];
$result = array_merge($arry1, $arry2);
print_r($result); // [1, 3, 5, 2, 4, 6]

print count($data); // 5
“`

## implode

要素を結合した結果文字列を返す

“`php:implode.php
$data = [‘PHP’, ‘Perl’, ‘Ruby’, ‘Python’, ‘Javascript’];

print implode(‘,’, $data); // PHP,Perl,Ruby,Python,

元記事を表示

要注意!フリーランスエンジニアが知っておくべきリスクとその対策Top6

### 要注意!フリーランスエンジニアが知っておくべきリスクとその対策Top6

1位:収入が不安定
2位:キャリアの停滞
3位:人脈を深めにくい
4位:もらえる年金が少ない
5位:退職金がない
6位:雇用保険がない

https://magicgifted.com/free-risk/

元記事を表示

回避不可能!落ち度がなくても、フリーランスエンジニアがクビになる理由Top5

### 落ち度がなくても、フリーランスエンジニアがクビになる理由

1位:予算の縮小
2位:タスクの不足
3位:リーダーの人手不足
4位:新規開発フェーズの終了
5位:会社の成長

https://magicgifted.com/career-1/

元記事を表示

コーディングテスト頻出の内部関数 まとめ(その2 – 数値処理関数)[PHP]

## この記事の目的
未経験エンジニアが転職活動をする際、最初の難関となるのがコーディングテストです。ここを突破しないと面接にすら進めません。
極度のプレッシャーの中、素早く正確に問題を解くためには、**「自分が使っている言語にどのような内部関数があるのか」「どうやって使うのか」など**を事前に把握しておくことが必須と言えます。

そこで、コーディングテスト頻出の内部関数の使い方を、使用例を交えてわかりやすく正確にまとめることにしました。
本記事では、**数値処理のための内部関数**のみを取り上げます。その他の内部関数については、現在に別記事として執筆中です。
(※言語は全てPHPになります)

## はじめに
早速ですが、本記事に登場する関数の一覧です。全部で5個の関数を取り上げます。
“`
1. min 最小の値を返す
2. max 最大の値を返す
3. round 浮動小数点数を丸める
4. ceil 端数を切り上げる
5. floor 端数を切り捨てる
“`

## 本題
それでは、1つずつ順に解説していきます。

元記事を表示

コーディングテスト頻出の内部関数 まとめ(その1 – 文字列処理関数)[PHP]

## この記事の目的
未経験エンジニアが転職活動をする際、最初の難関となるのがコーディングテストです。ここを突破しないと面接にすら進めません。
極度のプレッシャーの中、素早く正確に問題を解くためには、**「自分が使っている言語にどのような内部関数があるのか」「どうやって使うのか」など**を事前に把握しておくことが必須と言えます。

そこで、コーディングテスト頻出の内部関数の使い方を、使用例を交えてわかりやすく正確にまとめることにしました。
本記事では、**文字列処理のための内部関数**のみを取り上げます。その他の内部関数については、現在に別記事として執筆中です。
(※言語は全てPHPになります)

## はじめに
早速ですが、本記事に登場する関数の一覧です。全部で18個の関数を取り上げます。
“`
1. strlen 文字列の長さ(バイト数)を取得する
2. str_repeat 文字列を繰り返す
3. str_split 文字列を分割し、配列に変換する
4. explode 文字列を任意の文字列により

元記事を表示

さくらスタンダード+EC-CUBE4.2.3でプラグインインストールできない時はPHPダウン

# 基本環境
さくらレンタルサーバー スタンダード
EC-CUBE 4.2.3
PHP 8.2.15

# 一部のプラグインがインストールエラー
管理画面インストールでエラー
Terminalコマンドインストールでエラー
キャッシュ削除してもダメ
EC-CUBE再インストールしてもダメ

さくらレンタルサーバー、EC-CUBE4.2.2では問題なくインストールできた
お名前RSサーバー、EC-CUBE4.2.3でも問題なくインストールできた

なぜ?

# エラーコードを眺める
こんなお怒りの言葉が。。。
“`
Problem 1
– laminas/laminas-code 4.7.1 requires php >=7.4, <8.2 -> your php version (8.2.15; overridden via config.platform, same as actual) does not satisfy that requirement.
“`
# PHPバージョンダウン
PHPをバージョンダウン
8.2.15 →  7.4

プラグインインストールに成

元記事を表示

【Laravel】自動テストとかのまとめ

# はじめに

こんにちは、エンジニアのkeitaMaxです。

Laravelの自動テストとかをいろいろやったのでまとめです。

今までLaravelの記事を書いてきたので、それをまとめました。

これから紹介するものが全て入っているリポジトリは以下です。

https://github.com/NiheiKeita/docker-laravel-app

# Docker環境を作成

Dockerを使用してLaravelの環境を作成しました。

https://qiita.com/keitaMax/items/7bc51212a32a6418aa1c

# PHPstanを使った自動テスト

PHPstanを使って静的解析をしました。

https://qiita.com/keitaMax/items/a63e3a93f1d2f2d10473

また、以下記事ではPHPstanをGitHubにPushしたときにテストできるようにGitHubActionsを使用しました。

https://qiita.com/keitaMax/items/46102fd5a07e7c86168c

元記事を表示

Drupalでカスタムモジュールを作ってみよう

この記事ではDrupalでカスタムモジュールを作成するやり方をご紹介します。

# Drupalを使ってWEBサイトを作る流れ
***1. コアモジュールで機能を実現する***
Drupalインストール時に用意されているモジュールで実現できないか検討します。

***2. コアモジュールでできないことをコントリビュートモジュールで実現する***
Drupal.orgで公開されているコントリビュートモジュールで実現できないか検討します。

***3. コントリビュートモジュールで実現できない機能をカスタムモジュールで実現する***
ここまで検討して実現できていない場合は独自の機能である可能性が高いです。
そのためルーティングやテンプレートを活用してカスタムモジュールで機能を実現します。

まずはコアモジュールやコントリビュートモジュールで実現できないか?という観点で検討します。
なぜならばコアモジュールやコントリビュートモジュールで実現できれば、
インストールと設定で作業が済むため圧倒的にコストを抑えることができるからです。

ですがそのサイト独自の機能であれば出回っている可

元記事を表示

ローカル環境にDrupalをインストールしよう 〜Windows編〜

# はじめに
この記事ではDrupalをローカル環境(お手元のPC)にインストールする手順をご紹介します。

:::note info
ローカル環境は本番環境(=WEBに公開されていて誰でもアクセスできる環境)と違い、動作検証や開発を自由に行える環境です。
そのため万が一トラブルが発生してもほかの方へ影響しないため、機能開発や検証の際には必ず利用されるものです。
:::

なお今回はWindowsを使用している前提で手順をご紹介します。
Mac OSでの環境構築は以下の記事をご覧ください。

https://qiita.com/kmmch/items/5ee5b665e9256f205287

# Drupalの動作要件
| 構成要素 | 要件 |
|:-|:-|
| WEBサーバー | Apache 2.4.7以上
Nginx 1.1以上 |
| データベース | MySQL 5.7.8以上
MariaDB 10.3.7以上
Percona Server 5.7.8 以上
PostgreSQL 12以上
SQLite 3.26以上 |
| メモリ

元記事を表示

array_spliceとarray_slice

## はじめに

名前が似ていて混乱するので整理用に

## array_splice
配列に対し要素を追加/置換/削除する

“`
array_splice(array &$array, int $offset [, ?int $length[, mixed $replacement]]) :array
“`
&$array : 操作対象の配列
$offset : 要素の抽出開始位置
$length : 取り出す要素数
$replacement : 削除箇所に挿入する配列(単一の場合は文字列でも可)

“`php:array_splice.php
$data = [‘高江’, ‘青木’, ‘片渕’, ‘和田’, ‘花田’, ‘佐藤’];

print_r(array_splice($data, 2, 3, [‘日尾’, ‘掛谷’, ‘薄井’])); //[‘片渕’, ‘和田’, ‘花田’]
print_r($data); //[‘高江’, ‘青木’, ‘日尾’, ‘掛谷’, ‘薄井’, ‘佐藤’]

print_r(array_splice($data, -3, -2, [

元記事を表示

ローカル環境にDrupalをインストールしよう 〜Mac編〜

# はじめに
この記事ではDrupalをローカル環境(お手元のPC)にインストールする手順をご紹介します。

:::note info
ローカル環境は本番環境(=WEBに公開されていて誰でもアクセスできる環境)と違い、動作検証や開発を自由に行える環境です。
そのため万が一トラブルが発生してもほかの方へ影響しないため、機能開発や検証の際には必ず利用されるものです。
:::

# Drupalの動作要件
| 構成要素 | 要件 |
|:-|:-|
| WEBサーバー | Apache 2.4.7以上
Nginx 1.1以上 |
| データベース | MySQL 5.7.8以上
MariaDB 10.3.7以上
Percona Server 5.7.8 以上
PostgreSQL 12以上
SQLite 3.26以上 |
| メモリ | 最小1GB
※ライブラリを管理するためのComposerを使用するために必要です。 |
| PHP | 8.1以上
8.1.6を推奨
最小64MBのメモリが必要 |

# ローカル環境の活用方法

元記事を表示

OTHERカテゴリの最新記事