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

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

PHP8技術者認定上級試験合格体験記

# はじめに
先日、PHP技術者認定機構が実施しているPHP8技術者認定上級試験に、
1500満点の内1300点を取得して合格しました。

元記事を表示

PDO トランザクション

# PDO トランザクション `beginTransaction`, `commit`, `rollback` の3種類のメソッドを使用する

__●__ トランザクション: まとめて処理

– 参考: [PDOクラス](https://www.php.net/manual/ja/class.pdo.php)

– 使用されるシチュエーション例:
銀行ATM: 残高を確認->Aさんから引き落とし->Bさんに振込などこれらを全部まとめて処理をする(もし、何か問題があれば元に戻す)。

“`php:index.php
beginTransaction(); // トランザクションを始める

try {
// sql処理
$stm

元記事を表示

サクッとS3からローカルにダウンロードする

# 概要
1個2個のファイルならともかく、20個以上のS3のファイルをサクッとローカルにダウンロードしたいということありませんか?私はありました。そんなときのための覚書。phpのペライチで実現。

# 前提
プロダクトにs3のキーを持つテーブルがある、ないし別でs3のキー一覧を手元に持っていたとする

# 事前準備
①VisualStudioCodeをインストール
②拡張機能、PHP Serverをインストール
これにより、ペライチのphpを簡単にブラウザで実行できる。業務効率化にめちゃ便利
③composerをインストール
④composerでaws-sdkをインストール
“`
composer require aws/aws-sdk-php
“`

# コード

S3からキーを利用して、ローカルにファイルを落とす場合
“`php

元記事を表示

PDO プリペアードステートメント プレースホルダ

## データベースのデータを表示させる

– `index.php`の作成及び編集

__●__ ユーザー入力がない場合(SQL文が決まっているパターンで毎回同じような表示をするような時)は query関数を使用 (PDOStatementクラス)

– 参考: [PDOStatement](https://www.php.net/manual/ja/class.pdostatement)

“`php:index.php
query($sql); // sql実行される

$result = $st

元記事を表示

配列関数・3回目

## はじめに

配列関数の整理。3回目。

### usort

標準的なソート関数では表現できない順序に基づいてソートする

“`php:usort.php
$keys = [‘十’, ‘百’, ‘千’, ‘万’, ‘億’, ‘兆’, ‘京’, ‘垓’, ‘秭’, ‘穣’, ‘溝’,
‘澗’, ‘正’, ‘載’, ‘極’, ‘恒河沙’, ‘阿僧祇’, ‘那由他’, ‘不可思議’, ‘無量大数’ ];

$data = [‘那由他’, ‘京’, ‘垓’, ‘億’, ‘無量大数’ ];

usort($data, function($a, $b) use ($keys) {
return array_search($a, $keys) <=> array_search($b, $keys);
}); // [‘億’, ‘京’, ‘垓’, ‘無量大数’, ‘那由他’]
“`

### array_walk

配列から順に要素を取得&処理する

“`php:array_walk.php
$data = [‘高江’ => ‘男’, ‘掛谷’ => ‘女’, ‘日尾’ =>

元記事を表示

Drupalでカスタムテーマを作ってみよう

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

# Drupalにおけるテーマとは
DrupalにおいてテーマとはWEBサイトのページを構成する各要素のレイアウトや視覚的な見た目を定義するファイルの集合体です。

このテーマには大きく分けて3つあります。

– コアテーマ
– コントリビュートテーマ
– カスタムテーマ

## コアテーマとは
コアテーマとはDrupalインストール時にすでに使用可能となっているテーマのことです。
Drupal10では以下の3つが最初から使用できます。

Olivero
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/622183/0ad2e766-fe11-b308-40cf-e9c08a56b035.png)

Claro
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/622183/f9422829-b7b1-01f3-f00f

元記事を表示

PDOでデータベースと接続 (基本)

# PDOクラスで接続する方法

– 参考: [PDO::__construct](https://www.php.net/manual/ja/pdo.construct) ※ 一番初めに呼ばれる

## `db_connection.php` を作成及び編集

“`php:db_connection.php
ge

元記事を表示

laravelでの静的ページカンタン生成

“`php5:route/web.php
//必ず最後にかくこと
Route::get(‘{code}’, ‘PageController@page’);
“`

“`php5:contoller

元記事を表示

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

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

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

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

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

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

元記事を表示

配列関数・2回目

## はじめに

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

### 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/

元記事を表示

OTHERカテゴリの最新記事