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

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

php8+phalcon5+nginx+windows10 環境構築メモ

初見のphalcon環境構築時に少々手こずったので備忘として残します。
まずphalconの情報が思いのほか少なかった(シェアがそこまでないからかも)
私自身の経験不足が原因と捉えていますが、似たようなエラーに苦戦中の方の救いになればと思います。
#### 本件に関係しそうな環境諸々は以下の通り
– php 8.1.8
– phalcon/devtools 5.0.x-dev
– nginx 1.27
– mysql 5.7
– windows10
– docker desktop 4.31.1
– git for windows 2.43.0
#### docker インストール
“`
$ docker-compose -f .docker/docker-compose.yml up -d –build
$ docker exec -it xxxxx bash
$ composer install
“`
※必要最低限のみ記載するので適宜変更してください。
#### phalconインストールで問題発生
Dockerfileは以下の通り(ChatGPTに聞けば出てくるような内容な

元記事を表示

初めての個人開発

## 概要
このプロジェクトは、タスク管理と生産性向上を目的としたウェブアプリケーションです。ユーザーは、タスクの作成・管理ができ、ポモドーロタイマーを使用して作業時間と休憩時間を効果的に管理することができます。ログインすることで、タスクや設定の情報を長期的に保持でき、統計情報の取得もできます。ログインせずに、ゲストユーザーとしても使用できます。また、Youtubeのプレイヤーが埋め込まれており、お気に入りの再生リストを再生することが可能です。

## 背景
私の友人は休日に個人開発を行っています。一人で作業する環境では作業と休憩が曖昧になりがちです。作業の途中で他のことに目移りしてしまったり、休憩の時間が長引いてしまったりと集中力の維持が難しくあります。特に作業中でも休憩中でも、動画を流し好きな音楽を聞いていたりすると途中で動画サイトが気になりいつの間にか動画を見続けてしまうこともあります。 私も現在一人での学習時間が多いため、共感できる部分が多くありました。そのため、これらの問題を解決することで効率よく作業を進められるようにしたいと思ったからです。

## 要件
* タスク管理機能

元記事を表示

配列同士の共通部分を見つける

## array_intersect()

– 配列の共通部分を見つけるために使用される
– 複数の配列を渡すことで、それらの配列全てに共通する要素を抽出できる
– 結果の配列のキーは、最初の配列のキーを保持する

### 使用例

“`php
// 配列を定義
$array1 = array(“a” => “green”, “b” => “brown”, “c” => “blue”, “0” => “red”);
$array2 = array(“a” => “green”, “0” => “yellow”, “1” => “red”);

// 共通する値を持つ要素を取得
$result = array_intersect($array1, $array2);

// 結果を出力
print_r($result);

“`

### 出力
“`php
Array
(
[a] => green
[0] => red
)
“`

## array_intersect_key()

– 2つ以上の配列のキーに基づいて交差(共通するキーの要素)を返す
– 最初の

元記事を表示

【Laravel】CSVファイルの中身にバリデーション(maatwebsite/excel)

以前にCSVファイルをインポートする記事を書きましたが、今回はCSVファイルの中身にバリデーションチェックをかける方法について書きたいと思います。

前回のCSVファイルインポートの記事はこちらです。

https://qiita.com/programmer502/items/1c624d494392d2e37083

## やりたいこと

前回と同様に、下記のようなCSVデータをアップロードします。

“`
企業名,郵便番号,住所,電話番号,代表者名,担当者名,備考
テスト02株式会社,2203456,埼玉県上尾市井戸木,090-4736-0924,佐藤,中島,テストです
“`

– 備考以外はすべて必須項目
– 企業名は一意な値としたい

## Importクラスの作成

– インターフェイスにwithValidationを追加(useで読み込みを忘れずに)
– rulesメソッドでバリデーションのルールを設定
– customValidationMessagesメソッドでメッセージをカスタマイズする

以上を反映させたコードが下記です。

app/Imports/Compa

元記事を表示

【PHP】PHP7.4から8.1にバージョンアップしてみた

## はじめに

プロジェクトのPHPのバージョンを7.4から8.1にバージョンアップする作業を行いました。

今回のバージョンアップ作業で学んだ手順や考慮するべき点についてまとめていきたいと思います。

## この記事でやること

PHP7.4から8.1にバージョンアップする。

## 環境
– EC2を利用しています
– OSイメージ:Amazon Linux 2 Kernel 5.10
– PHPのバージョン: PHP 7.4.33 (cli)
– PHPUnitのバージョン: 9.5.28
– CakePHPのバージョン: 4.2.12
– nginx: nginx/1.22.0
– php-fpm: PHP 7.4.33 (fpm-fcgi)

## 事前調査・準備

### バージョンアップに関する情報を集める

#### PHP

PHPの各バージョンはリリースから3年間サポートされます(2年間のアクティブサポート+セキュリティサポート1年)が、PHP7.4はセキュリティサポートが2022年11月28日で終了しているため、今後の保守を考えてPHP8.1へのバージョ

元記事を表示

【PHP】Enumでの検証を簡単にする

## PHPのEnumでの検証
以下のようなEnumがあるとしたとき
“`php
enum Test: string
{
case Test1 = ‘test1’;
case Test2 = ‘test2’;
case Test3 = ‘test3’;
}
“`
検証の際いちいち
“`php
if ($test === Test::Test1) {}
“`
みたいなことを書くと可読性が悪くなる気がしたので

以下のようなトレイトを用意して
“`php
trait EnumIsTrait {
public static function tryFromName(string $name)
{
foreach (self::cases() as $case) {
if ($case->name === $name) {
return $case;
}
}
return null;
}

p

元記事を表示

【PHP】Fizz Buzz (paizaランク C 相当)をやってみた

https://paiza.jp/works/mondai/c_rank_skillcheck_sample/fizz-buzz

以下に、与えられた問題に基づくPHPプログラムを作成しました。このプログラムは、1からNまでの整数を順に表示し、条件に応じて特定の文字列を表示します。

“`php

元記事を表示

【PHP】正規表現でハッシュタグを抽出したい

### 環境
“`
$ php -v
PHP 8.3.8 (cli) (built: Jun 4 2024 14:53:17) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.3.8, Copyright (c) Zend Technologies
with Zend OPcache v8.3.8, Copyright (c), by Zend Technologies

$ php artisan –version
Laravel Framework 11.10.0
“`

### 困ったこと
趣味で開発しているアプリでハッシュタグを扱いたい!となり、文章から正規表現でハッシュタグを抽出する処理を実装するにあたりたくさんのサイトを参考にさせていただきました。

例えばこんな感じ。
“`php
$value = ‘#思い出 この本は図書館で大人気でした。 #ウォーリーを探せ ’;
$matches = [];
preg_match_all(
‘/(?<=\s|^)#\S+/', $value,

元記事を表示

Laravelにおけるサロゲートキーと自然キーについて

## 1. はじめに

ふとしたことで自然キーとサロゲートキーについて知る機会がありました。Laravelではどのような扱い方をしているのか気になって調べてみました。

## 2. 対象読者

– Laravel利用者
– テーブル設計者

## 3. 目次

– [1. はじめに](#1-はじめに)
– [2. 対象読者](#2-対象読者)
– [3. 目次](#3-目次)
– [4. 自然キーとは](#4-自然キーとは)
– [5. サロゲートキーとは](#5-サロゲートキーとは)
– [6. Laravelにおけるサロゲートキー](#6-laravelにおけるサロゲートキー)
– [6-1. カスタムサロゲートキーの設定](#6-1-カスタムサロゲートキーの設定)
– [6-2. サロゲートキーを使用しない場合の主キーの設定方法](#6-2-サロゲートキーを使用しない場合の主キーの設定方法)
– [7. さいごに](#7-さいごに)
– [8. 参考サイト](#8-参考サイト)

## 4. 自然キーとは

自然キーとは、業務上の意味を持つデータ項目を使用してレコードを一

元記事を表示

【Laravel】メソッドインジェクションを利用してCookieの値を偽装する

前回の続きです。

https://qiita.com/KyongminS/items/c9be3334cc8a6189f25e

今回紹介するユースケースとしては、

**テストしたいCookie処理を含むメソッドがサービスファイルに存在しており、そのメソッド使用しているcontrollerのURLを呼ぶと色々副作用がありそうで面倒くさそうなので、そのメソッド単体を呼び出せるようにしてテストしたい**

というケースです。

Cookie関連の処理を含むメソッドは、Cookieの特性上、URLリクエストを通してテストする必要があります。

この方法で取得されるCookieは暗号化されているので、暗号化処理のミドルウェアを無効にします。use で WithoutMiddleware をインポートすると他のミドルウェアも無効になってしまうので、以下の記述を対象のテストケースの先頭に書きます。

“`php
$this->WithoutMiddleware(\App\Http\Middleware\EncryptCookies::class);
“`

テストしたいメソッドは以下です。

元記事を表示

【Laravel】メソッドインジェクションを利用してRequestを偽装しよう!

Laravelでリクエストを受け取ってゴニョゴニョしているメソッドをテストしたいとき、役に立つのが**メソッドインジェクション**です。
ここでは詳しく話しませんが、「サービスコンテナ」で調べると色々情報が出てきます。

https://laravel.com/docs/11.x/container

(Laravel8ですが)

https://readouble.com/laravel/8.x/ja/container.html

今回はこのメソッドインジェクションを利用して、`Request::xxx()` 系の処理をテストする方法を紹介したいと思います。

## Request::root

`Request::root()` と `request()->root()` の出力は一緒です。

“`php
$this->assertEquals(
request()->root() . “/sample”,
Request::root() . “/sample”
);
# => OK
“`

## Request::get

リクエスト偽装の方法として、`Re

元記事を表示

WordPressで自前のAPIを作成する方法

# 結論
`rest_api_ini` フィルタを使おう。
ついでに勝手に使われるといけないので以下のフィルタを使って、認証処理も実装しましょう。
– `determine_current_user`
– `rest_authentication_errors`

# 作成するエンドポイント
“`
https://ブログドメイン/wp-json/myapi/v1/helloWorld
“`
# コード
“`php:完成系
// 使いたいAPIの中身を書こう
function helloWorld()
{
echo ‘Hello World!’;
}

// 自作のAPIを作る
add_action(‘rest_api_init’, function () {
register_rest_route(‘myapi/v1’, ‘/hello’, array(
‘methods’ => ‘GET’,
‘callback’ => ‘helloWorld’,
‘permission_callback’ => function ()

元記事を表示

WordPress.comでREST API経由で画像にalt属性を付与するときの罠

今日の懲りずにWordpress.comの記事です。

:::note warn
Wordpress.comでWordpress.orgのREST APIを使っています。
:::

Wordopress.comのREST APIにはalt属性を設定するインターフェースがあります。

**Wordpress.com のREST API**

https://developer.wordpress.com/docs/api/1.1/post/sites/%24site/media/new/

**Wordpress.org のREST API**

Media

これを使う上で注意しないといけないのは、ここでalt属性を設定した画像を記事中で使用するとき、
– REST API経由で文章を投稿している
– 投稿した画像のURLを記事中に `img` タグで埋め込んでいる
– 記事の文書をHTMLやMarkdownで作成している

ときは、**imgタグのalt属性を自分で取得してあげる

元記事を表示

Docker,Laravel,ReactのSPA開発【開発編】

# はじめに
こんにちは、Webエンジニアの岩田史門([@SI_Monxy](https://x.com/SI_Monxy))です!
今回はDocker、Laravel、Reactを用いたSPA開発のハンズオンについて記事を書いてみました!
改善点や修正点があれば、コメントにて優しくご指導いただけると嬉しいです!

# 概要
本記事では、Dockerを使用してLaravelバックエンドとReactフロントエンドの環境を構築し、SPA(Single Page Application)を開発する手法を解説します。Docker Composeを使用して複数のサービスを簡単に管理し、効率的な開発環境を整えます。

# 開発
## Laravel APIの作成
routes/api.php ファイルを編集し、APIルートを追加します。

“` php
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;

Route::middleware(‘auth:api’)->get(‘/user’, function (R

元記事を表示

Docker,Laravel,ReactのSPA開発【環境構築編】

# はじめに
こんにちは、Webエンジニアの岩田史門([@SI_Monxy](https://x.com/SI_Monxy))です!
今回はDocker、Laravel、Reactを用いたSPA開発のハンズオンについて記事を書いてみました!
改善点や修正点があれば、コメントにて優しくご指導いただけると嬉しいです!

# 概要
本記事では、Dockerを使用してLaravelバックエンドとReactフロントエンドの環境を構築し、SPA(Single Page Application)を開発する手法を解説します。Docker Composeを使用して複数のサービスを簡単に管理し、効率的な開発環境を整えます。

# 前提条件
以下のツールがインストールされていることを前提とします:

– Docker
– Docker Compose
– Node.js
– npm または yarn

# 環境構築
## プロジェクトディレクトリの作成
まず、新しいディレクトリを作成し、プロジェクトのルートディレクトリとします。

“` bash
mkdir laravel-react-spa
cd la

元記事を表示

WordPress.comの「Application Manager」を使って認証処理を実装してみる

# WordPress.comの認証
Wordpress.com 上のデータを外部から扱うには認証(OAuth2.0)が必要です
Wordpress.comから提供されている認証エンドポイントを利用して、外部からWordpress.comのデータを扱えるようにしましょう。

# 手順
1. Application manager で認証アプリを作る
1. アプリケーションパスワードを発行する
1. 認証処理を実装する

# Application manager で認証アプリを作る
Application Managerのリンクは以下。

https://developer.wordpress.com/apps/

このリンクの右上に「Create New Application」があるのでクリックすると、以下のようなアプリ作成が出ます。

![スクリーンショット 2024-07-09 1.31.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/374872/dc3fc83f-7a61-ea37-31

元記事を表示

Laravelのenvの値はどの優先順位で参照されるのか

# 結論
1. コマンドラインオプション(php artisan test **–env=test** ←コレ)
1. サーバ環境変数
1. `phpunit.xml` の設定値(テスト実行時)
1. `.env` の値
1. `.env.production`
1. `.env.example`

# 補足
サーバ環境変数は
“`zsh
export ENV=production
“`
としたら
“`php
$env = env(‘KEY’);
“`
で参照できます。

無理やりDBのコネクションを変えたりオプションを書き換えたい場合は、コマンドラインオプションを使うのがいいですね。

元記事を表示

Dockerを用いたLaravelの環境構築

# はじめに
こんにちは、Webエンジニアの岩田史門([@SI_Monxy](https://x.com/SI_Monxy))です!
今回はDockerを用いたLaravelの環境構築について記事を書いてみました!
改善点や修正点があれば、コメントにて優しくご指導いただけると嬉しいです!

# 概要
Dockerを使用することで、ローカル開発環境を迅速かつ一貫してセットアップできます。このガイドでは、Laravelアプリケーションの開発環境をDockerで構築する手順を紹介します。

# 前提条件
– Dockerがインストールされていること
– Docker Composeがインストールされていること

# 手順概要
1. Laravelプロジェクトの作成
2. Dockerファイルの作成
3. Docker Composeファイルの作成
4. 環境設定ファイルの編集
5. Dockerコンテナのビルドと起動

# 1. Laravelプロジェクトの作成
まず、Laravelプロジェクトを作成します。以下のコマンドを実行して、新しいLaravelプロジェクトを作成します。

“`

元記事を表示

LaravelでAWS S3を利用してみた

# はじめに
こんにちは、Webエンジニアの岩田史門([@SI_Monxy](https://x.com/SI_Monxy))です!
今回はLaravelでのAWS S3の利用について記事を書いてみました!
改善点や修正点があれば、コメントにて優しくご指導いただけると嬉しいです!

# 概要
AWS S3(Amazon Simple Storage Service)は、高い可用性とスケーラビリティを持つクラウドストレージサービスです。Laravelは、その柔軟なストレージシステムを介して、簡単にS3を利用することができます。本記事では、LaravelアプリケーションからAWS S3ストレージを利用する方法について詳しく解説します。

# 前提条件
– Laravelプロジェクトがセットアップされていること
– AWSアカウントがあること
– AWS CLIがインストールされていること

# AWS S3バケットの作成
まず、AWSマネジメントコンソールにログインし、S3バケットを作成します。

## 1. S3コンソールにアクセス
AWSマネジメントコンソールから「S3」を選択します。

元記事を表示

[Vue/Laravel]APIを実装してみる

## はじめに
こんにちは、ゆきおです。
[こちらの記事](https://qiita.com/kazuyuki_11E0/items/2cbd2e14f5108ac3f891)で作った環境でAPIを実行する簡単なサンプルを作ろうと思います。
もともとあるUserモデルを使ってログイン、ログアウトを実装してみます。

## バックエンド
まずSanctumのマイグレーションを行います
“`php
sail artisan vendor:publish –provider=”Laravel\Sanctum\SanctumServiceProvider”
sail artisan migrate
“`
Sanctumの設定ファイルをプロジェクトにコピーし、新たに追加されるpersonal_access_tokens_tableをデータベースに反映させます。

次にデフォルトのUser.phpにSanctumのトレイトを追加します。
“`php
namespace App\Models;

use Illuminate\Foundation\Auth\User as Authenti

元記事を表示

OTHERカテゴリの最新記事