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

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

試す価値のある7つのツール、使ったことがありますか?

開発者として、ワークフローを合理化し、生産性を向上させるためにツールを活用するのは一般的なことです。ここでは、すべての開発者が知っておくべきだと思う7つのツールをまとめました。これらのツールは効率を高め、開発作業を楽にし、リラックスする時間を増やしてくれるでしょう。

経験豊富な開発者であれ、初心者であれ、この記事であなたのニーズに合ったツールが見つかることを願っています。

### [Warp](https://www.warp.dev/) – AIターミナル

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/79dzunehtgzm87fk0fxg.png)

WarpはRustで開発されたオープンソースのターミナルで、多くの機能を備えており、開発者の生産性を大幅に向上させることができます。その最も人気のある機能は、AI駆動のコマンド検索です。コマンドを入力するときに、Warpは自然言語の説明に基づいた提案を提供し、開発者が正しいコマンドを迅速に見つけるのを助けます

元記事を表示

デバッガについて

## デバッガとは
デバッガとはバグの原因を見つける作業を手伝ってくれるツールのことを言う。
ターミナルからvar_dumpやechoなどで出力結果をいちいち確認しなくても、VScode上で出力結果を確認することができる。
また、任意の行で実行を止めてその時点での変数の中身を確認することもできる。

## PHPのよく使われるデバッガは「Xdebug」

Xcodeの特徴は以下の通りである。
– コードにブレークポイントを設定して1行ずつアプリケーションを実行
– ブレークポイントごとに変数の中身を出力して確認
– エラーが発生するまでの経過を詳細に表示
– VSCodeと一緒に使える

元記事を表示

クソ雑魚のワイ、symfonyのコードリーディングしてみた①

自分は25卒の学生です。
この時期に内定がまだなく、流石に焦っています。

__「この時期に内定ないのヤバいって。危機感持て。」__
とあるメンズコーチの言葉が脳裏をよぎります。

これまで就職活動に力を入れ、技術勉強は中断していました。
ですが就職活動の時間を振り返り、このように思いました。

__時間の無駄だったな。__

ということで、何かしらの技術勉強も並行しようと思い、コードリーディングに挑みます。
クソ雑魚エンジニア、いや、エンジニアですらない僕ですが、アウトプットを目的として記事を書きます。

優しい目で見守ってください。

## Symfonyとは

READMEには以下のように書いてあります。

英語
Symfony is a PHP framework for web and console applications and a set of reusable PHP components. Symfony is used by thousands of web applications and most of t

元記事を表示

【PHP8.4】PHP8.4の新機能

[PHP8.4](https://qiita.com/rana_kualu/items/b195b1adc60b763843d9) / [PHP8.3](https://qiita.com/rana_kualu/items/91111443105a75a55e2f) / [PHP8.2](https://qiita.com/rana_kualu/items/fc4b02e2daaf102aa92f) / [PHP8.1](https://qiita.com/rana_kualu/items/a6601b49e0591eb42200) / [PHP8.0](https://qiita.com/rana_kualu/items/fe7998fbe773544d5d25)

2024/08/13、PHP8.4が[フィーチャーフリーズ](https://wiki.php.net/todo/php84)しました。
言語機能に関わるような機能の追加・変更が締め切られたということです。
今後はデバッグを繰り返しながら完成度を高めていき、2024/11/21にPHP8.4.0がリリースされる予定です

元記事を表示

PHP × Laravel 学習(用語)

## はじめに

PHP、Laravelの用語について学んだことを記載していきます。
すでに知っている用語については参考記事を貼っています。

## PHP

Web開発向けの言語
サーバサイドで動くスクリプト言語

シンプルなためプログラミング初心者にもお勧めできる言語

### ビルトインサーバ

PHP5.4以降の動作確認用の機能
本番運用を想定したサーバではないためこの機能でのアプリ公開はNG

## Laravel

PHPで使われるMVCフレームワークでモダンな開発が可能

[【解説】MVCモデルとは?メリット・デメリット](https://system-kaihatu.com/archives/3204#:~:text=MVC%E3%83%A2%E3%83%87%E3%83%AB%E3%81%A8%E3%81%AF%E3%80%81%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0,%E5%9B%B3%E3%82%8B%E3%81%93%E3%81%A8%E3%81%8C%E3%81%A7%E3%81%8D%E3%81%BE%E3%

元記事を表示

vscodeでphpのセットアップ

## メインセットアップ

下記サイトをもとに拡張機能のインストールまで進めていきます。
※デバッグ実行やComposerなどは後述の手順でセットアップをします。
 Gitはすでに入っているため飛ばします。

https://qiita.com/tfukumori/items/97a8f1ac6532612b004f

## サブセットアップ

### デバッグ実行

デバッグ実行時になぜかブレークポイントで止まらなかったので、正常に動いた設定を下記に記載しています。

setting.json
・何もしない

“` launch.json
{
“version”: “0.2.0”,
“configurations”: [
{
“name”: “Listen for XDebug”,
“type”: “php”,
“request”: “launch”,
“port”: 9000
},
{
“name”: “Launch currently open script”,
“type”

元記事を表示

huskyでdocker compose exec でエラーが出て動かなかった

# はじめに

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

今回はhuskyを使用してdocker compose exec コマンドを実行した時にエラーが出て困ったことがあったので、備忘録として残します。

# 問題

“`.husky/pre-commit
docker compose exec app vendor/bin/phpstan analyze
docker compose exec app composer phpcs .
“`

huskyを使用してコンテナの中に入ってコマンド実行したら以下のようエラーが出て実行できませんでした。

“`
% git commit -m “add husky”
the input device is not a TTY
husky – pre-commit script failed (code 1)
“`

# 解決策

`docker-compose exec` に -T オプションを追加すると治るらしいです。

https://tex2e.github.io/blog/infrastructure/docker

元記事を表示

Laravelを1日でマスターしたい人向けチュートリアル

## Chapter 1: Laravelの紹介
Laravelは、PHPで書かれたオープンソースのWebアプリケーションフレームワークです。MVC(Model-View-Controller)アーキテクチャに基づいており、開発者が効率的にWebアプリケーションを構築できるように設計されています。豊富な機能と優れたドキュメントが特徴です。

## Chapter 2: 開発環境のセットアップ
Laravelを使用するには、PHP、Composer、およびLaravel自体をインストールする必要があります。以下のコマンドで新しいLaravelプロジェクトを作成できます:
“`bash
composer create-project –prefer-dist laravel/laravel myApp
“`

## Chapter 3: Laravelのディレクトリ構造
Laravelのディレクトリ構造は、アプリケーションの異なる部分を整理するために設計されています。主なディレクトリには、`app`、`config`、`database`、`resources`、`routes`など

元記事を表示

PHPでのファイル操作の基本:書き込みと読み込み

この記事では、テキストファイルへの書き込みと、ファイルの読み込み方法について詳しく解説します。

## 実施内容
以下の手順でアクセスログを記録し、表示することを目指します。

– **ログの書き込み:**
PHPを使用して、ユーザーのアクセス日時、スクリプト名、ユーザーエージェント、リンク元URLなどの情報をaccess.logというテキストファイルに追記します。
書き込みにはファイルロックを使用し、データの整合性を保ちます。

– **ログの読み込みと表示:**
fgetsやfile関数を用いて、ログファイルからデータを読み込み、HTMLテーブル形式でウェブページに表示します。

## ファイル操作の基本
### 1. ファイルを開く
PHPでは、`fopen`関数を使ってファイルを開きます。成功するとファイルハンドルが返され、ファイルの操作が可能になります。ファイルを開く際には、以下のモードを指定します。

| モード | 説明 |
|—– | —- |
|r | 読み込み専用。ファイルが存在しない場合はエラー。 |
|w | 書き込み専用。ファイルが存在しない場合は作

元記事を表示

FTPでのファイル受信時に注意すべきポイント

# FTPでのファイル受信時に注意すべきポイントと実装方法(PHP & C#コードサンプル付き)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/84965/92d102c4-93ee-42cf-6971-114e487fff7e.png)

いまだにデータのやり取りをAPIとしてOAuthとか使わずに、FTP(File Transfer Protocol)を使って閉まってるケースはまだまだあると思います。FTPは、システム間でファイルを転送するための標準的なプロトコルです。しかし、受信側で適切な対策を取らないと、転送が完了していないファイルを取得してしまい、データの不整合やファイルの破損などの問題が発生する可能性があります。

## なぜFTPは大変なのか
FTPというプロトコルの性質上、ファイルを送る際(PUT)に、まずはファイルのエントリーを0KBで作成します。この瞬間に、受け取り側からもファイル名を取得できるため、ファイルを取得(GET)できてしまいます。(ファイルのロック機能

元記事を表示

Laravel sailでのmigrate簡易まとめ

## はじめに
Laravel sailでmigrateを行うケースについて簡単にまとめました。
sail環境以外でも、以下のコマンドの`sail`を`php`に読み替えてもらうと同様に動くと思います。

:::note
この記事は「[Laravelの教科書 (加藤じゅんこ)](https://www.socym.co.jp/book/1408 “Laravelの教科書バージョン10対応(加藤 じゅんこ) | 書籍 本 | ソシム”)」の内容を一部参考にさせていただきました。

:::

## 新規テーブル作成時
### ①マイグレーションファイルを作成
マイグレーションファイルとモデルを同時に新規作成
`$ sail artisan make:model <モデル名> -m`

:::note
マイグレーションファイルのみ新規作成する場合はこちら
`$ sail artisan make:migration マイグレーションファイル名`
:::

### ②作成したマイグレーションファイルを編集
database\migrations内に作成されたマイグレーションファイルを開いて編集

元記事を表示

Drupalでdotenvを使う

## はじめに
`dotenv`は環境変数を読み込むために用いられるライブラリです。例えばPHPだと[phpdotenv](https://github.com/vlucas/phpdotenv)が有名です。

今回は`Drupal`で`dotenv`を使用する方法についてまとめます。

## なぜdotenvを使うのか
なぜdotenvを使うのかというと
– 環境変数のハードコーディングを避けるため
– セキュリティの観点でよろしくない
– 環境の切り替え(例えば開発環境から本番環境)の際に環境変数の設定を楽にする

といった理由が挙げられます。

## 早速準備してみる
今回はDrupalで提供されている`dotenv`を使用します。

### 環境
最新版の`1.2.x`を使用する場合、以下の環境を用意しておく必要があります。
– PHP8.0以上
– Drupal10

### インストール
1. `drupal/dotenv`をcomposerを使ってinstallします。
“`bash
composer require ‘drupal/dotenv:^1.2’
`

元記事を表示

5分で理解するPSR-15

# 初めに
前略、PSR-15について調べたのでまとめます。

# PSRとは
PSRとは、PHPにおける標準的なインターフェース仕様を定めたガイドラインです。これは、PHP-FIG(PHP Framework Interoperability Group)という団体によって策定されています。

https://www.php-fig.org/psr/

# PSR-15とは
PSR-15は、Web APIやWebアプリケーションのリクエストとレスポンス処理を共通化・標準化するためのガイドラインです。
https://www.php-fig.org/psr/psr-15/

例えば、HTTP通信を行う場合、全てのAPIのレスポンスにHTTPの形式に合わせてヘッダーなどを付与する必要があるかと思いますが、フレームワーク(FW)を利用している際に、実装者がController内でHTTP形式に変換する処理を書く機会は少ないと思います。これは、FWが「レスポンスをHTTP形式に変換する」という共通の処理を部品として実装しているためです。
このような共通処理の設計に関するガイドラインを定めた

元記事を表示

PHPで”Fatal error”が表示されない不具合(?)

いくら例外を投げても無反応だったので、原因を徹底調査しました。
すると、`catch`ブロックの中で未定義の関数が見つかり、
その場所で`Fatal error`が発生したものの、
`finally`ブロックの処理がそのエラーの表示より優先され、
最後に表示されるはずだったのに`finally`ブロックにある`die()`のせいでエラー表示が消されてしまっていました。

:::note info

私の環境
●Windows 10
●PHP 8.3.10(8.2.12 でも同様の現象を確認)

:::

まずは、下記のスクリプトを実行してみてください。

“`PHP

元記事を表示

更新公告:ServBay 1.4.0

[ServBay](https://www.servbay.com) のバージョン1.4.0がリリースされました! 🚀

このアップデートには、多くのバグ修正とユーザーエクスペリエンスおよびシステム効率を向上させる新機能が含まれています。詳細なリリースノートは以下の通りです。

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/de63yhu69mf8ft3z2x4s.png)

**[ダウンロード](https://www.servbay.com)はこちらから**

## 新機能 🌟

### MySQLサポート
ServBayはMySQLをサポートし、MySQL 5.1からMySQL 9.0までのすべてのバージョンに対応しています。これにより、データ管理のニーズをすべて満たします。

### 新しいサービス管理インターフェース
新しいサービス管理インターフェースを導入し、管理操作がより直感的かつ効率的になりました。

### 新しいデータベースサービス設定インターフェース
**

元記事を表示

PHP8の変更点まとめ

## はじめに
PHP8とそれ以前の過去バージョンを比較して変更点をまとめました。

PHPのアップデート対応をするときに参考になると思うので、ご活用ください。

## 1. コンストラクタの変更
PHP5以前のバージョンでは、クラス名と同じ名前のメソッドがコンストラクタとして使われていました。PHP7以降では、__construct メソッドがコンストラクタとして標準化されています。

修正前:

“`php
class MyClass {
function MyClass() {
// コンストラクタの処理
}
}
“`

修正後:

“`php
class MyClass {
function __construct() {
// コンストラクタの処理
}
}
“`

## 2. mysql_* 関数の廃止
PHP7.0で mysql_* 関数は廃止され、代わりに mysqli_* または PDO(PHP Data Objects)が推奨されています。

修正前:

“`php
$link = mysql_

元記事を表示

【2024年最新】PHPの基礎

## はじめに
PHPはサーバーサイドで動作するスクリプト言語で、動的なWebページやアプリケーションの作成に広く使用されています。

ここではPHPの基本的な文法と機能について説明します。

## 目次
* 基本構文
* 変数
* データ型
* 演算子
* 制御構造
* 関数
* 配列
* クラスとオブジェクト
* 例外処理
* ファイル操作
* スーパーグローバル変数

## 基本構文
PHPスクリプトはで終わります。PHPタグはHTML内に埋め込むこともできます。

“`php

“`

## 変数
PHPの変数はドル記号$で始まります。変数名はアルファベットまたはアンダースコアで始まり、その後にアルファベット、数字、アンダースコアが続きます。

“`php

“`

## データ型
PHPにはいくつかのデータ型があります:

文字列 (string)
整数 (int)
浮動小数点数 (f

元記事を表示

夏の猛暑に備えてLINEBOTで水分補給リマインダーを作ろう

## はじめに

夏の猛暑が続く中、こまめな水分補給が大切です。今回は、PHPを使ってLINEBOTを作成し、定期的に水分補給を促すリマインダーを設定する方法をご紹介します。初心者でも簡単に実装できるシンプルなボットですので、ぜひ試してみてください。

## 1. LINE Developer Programの契約と設定

### 1.1 LINE Developerアカウントの作成

1. [LINE Developers](https://developers.line.biz/ja/) にアクセスし、LINEアカウントでログインします。
2. 「プロバイダーを作成」ボタンをクリックし、任意の名前を入力してプロバイダーを作成します。
3. プロバイダーを作成したら、「Messaging API」を選択し、チャネルを作成します。
4. チャネル名、説明、業種、メールアドレスなど必要な情報を入力し、「作成」ボタンをクリックします。

### 1.2. チャネルの設定

1. チャネルシークレットとチャネルアクセストークンが発行されます。これらをメモしておきます。
2. 「Me

元記事を表示

Laravel11になってapi.phpがなくなった!

# まずなんでapi.phpが無くなっちゃったの?
> 最新版のlaravelで立ち上げた際にapi.phpが無くなってしまったのでその時の対処法を書きます。Laravel11では、新しいデフォルトのアプリケーション構造が導入され、デフォルトのファイルが少なくなっています。つまり、新しいLaravelアプリケーションには、サービスプロバイダ、ミドルウェア、設定ファイルの数が少なくなっています。
しかし、Laravel10アプリケーションをLaravel11にアップグレードするときに、アプリケーション構造の移行を試みることはお勧めしません。Laravel11はLaravel10のアプリケーション構造もサポートするように注意深く調整してあります。

とのことです。つまり構造が変化したためあまり使われることのなかったapi.phpが無くなったようです。
以下でより詳細な変更点を見ることができます。
https://readouble.com/laravel/11.x/ja/upgrade.html
# Laravel11のインストール方法
以下コマンドでLaravel11を立ち上げることが

元記事を表示

ServBayで.user.iniを使用する方法

[ServBay](https://www.servbay.com)は、複数のPHPバージョンをサポートし、便利な設定管理機能を提供する強力な統合型[ウェブ開発ツール](https://support.servbay.com)です。特定のディレクトリやプロジェクトのPHP設定をカスタマイズする必要がある場合、.user.iniファイルを使用することで、グローバルなPHP設定ファイルを変更せずにカスタムPHP設定を適用できます。

## `.user.ini`の紹介

`.user.ini`ファイルはPHP 5.3.0以降のバージョンで導入された機能で、特定のディレクトリ内でカスタムPHP設定を定義できます。グローバルな`php.ini`ファイルとは異なり、`.user.ini`ファイルの設定はそのディレクトリとそのサブディレクトリにのみ適用されます。

### 主な特徴
**1. ローカル設定**: `.user.ini`ファイルの設定は、そのディレクトリとサブディレクトリにのみ適用され、グローバル設定には影響しません。
**2. 柔軟性**: 開発者は異なるプロジェクトやディレクト

元記事を表示

OTHERカテゴリの最新記事