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

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

Fuel\Core\PhpErrorException [ Fatal Error ]: The configured locale(s) “en_US” can not be found on your system.

Fuel\Core\PhpErrorException [ Fatal Error ]:
The configured locale(s) “en_US” can not be found on your system.

fuelPHPを設置する段階でもうローカルで開くことさえできないエラーが出されます。
(vscode, xampp使用)

「http://localhost/[プロジェクトフォルダ名]/public/」 
を開こうとしたらエラーが出ます。

対処法です。

fuel/app/config/config.php をひらきます。

そこから「language」を検索します。

/**
* The default language.
*/

// ‘language’ => ‘en’,

/**
* Fallback language when file isn’t available for default language.
*/

// ‘language_fallback’ => ‘en’,

/**
* PHP set_

元記事を表示

【AWS】EC2 インスタンス上で GitHub からクローンした PHP アプリを動かす

# はじめに
この記事では、EC2 インスタンス上で GitHub からクローンした PHP アプリを動かす方法を記載します。

# 開発環境
開発環境は以下の通りです。

– Apache 2.4.62
– PHP 8.3.7
– Git 2.40.1

# 事前準備
以下の2点を事前準備しておきます。

## PHP アプリの作成
以下のファイルを持つ PHP アプリを GitHub 上に作成します。

“`index.php




PHP Samples

PHP Samples

Hello PHP!




“`

“`clock.php

“`

## EC2 インスタン

元記事を表示

複数行を一括でINSERTする

今日から始める `PHP(主にCodeIgniter3) + MySQL` のメモ書き。

もっと早く始めていれば良かったと反省。

## INSERTの効率化

まず初めに、1件ずつINSERTするのはパフォーマンスが良くありません。
このことは一般的な知識として知っておいた方が良いです。
[MySQLのINSERTの効率化](https://qiita.com/jkr_2255/items/12081b3c066d371516f5)

## CodeIgniterでは?

[insert_batch()](https://codeigniter.jp/user_guide/3/database/query_builder.html#CI_DB_query_builder::insert_batch)を使用する。
注意点などは下記の投稿を参考に。
[CodeIgniterでinsert_batchする場合のポイント](https://qiita.com/jkr_2255/items/8ef8372969da0f574fa4)

## 大量データを処理する場合

INSERTクエリは

元記事を表示

「CakePHP超入門」を読んで詰まったところ

## はじめに
2018年発行の[「CakePHP超入門」](https://www.shuwasystem.co.jp/author/a180749.html)を2024年8月に勉強しました。この時、最新バージョンに対応しておらず、何箇所か詰まりました。これは、その時のメモです。お役に立てれば良いと思います。
なお、[CakePHP書籍の「CakePHP 超入門」で詰まったところ](https://zenn.dev/yyykms123/articles/2019-04-09-cakephp-trouble
)を参考にしました。正直言って、こちらのページの方が役に立つと思います。

# 使用環境
+ MacBook Air(M1 2020)
+ macOS 14.6.1
+ MAMP Version 6.9
+ PHP 7.4.33
+ MySQL Version 5.7.39
+ CakePHP Version 3.10.5

## 準備
書籍では[XAMPP](https://www.apachefriends.org/jp/index.html)が使用されていますが、M1チップに

元記事を表示

PHPでSQL文を書いて実行するとなんかエラーが出ていた話

## はじめに
前にPHPでSQL文を変数に代入して実行しようとしていると、SQL文はあっているはずなのになぜか“`HTTP ERROR 500“`が返ってきていました。

##### 原因のコード
“`php:PHP
$sql = “INSERT INTO sample_table (id,name,age,birthday) VALUES ({$_POST[‘id’]},”{$_POST[‘name’]}”,{$_POST[‘age’]},”{$_POST[‘birthday’]}”)”;
“`

## 原因
原因はおそらく、“`”{$_POST[‘name’]}”“`のダブルクォーテーションがあることで、この時点で変数の値が終了しているという判定になったからだと考えられます。

## 解決方法
“`”{$_POST[‘name’]}”“`や、“`”{$_POST[‘birthday’]}”“`のダブルクォーテーションをシングルクォーテーションに置き換えることで解決しました。

“`PHP:PHP
$sql = “INSERT INTO samp

元記事を表示

PostgreSQLにPHPで通信してみた

## はじめに
インターンで環境構築したサーバーを使ってデータベースと通信する機会がありました。PostgreSQLを用いてデータベースを作成する作業は以前[記事](https://qiita.com/akito-0520/items/041ec30f01128ad0b3e3 “PostgreSQLを使ってみた”)にまとめたので、この記事ではその先の実際に通信する作業をまとめたいとおもいます。
 初めての経験だったので無駄なことやおかしなことを言っているかもしれませんがもしあった場合はコメント欄で優しく指摘していただけると幸いです。

### 実行環境
– OS: AlmaLinux 8.10
– PostgreSQL: 12.20
– PHP 8.0.30

## 実際に使ってみる
前回でPostgreSQPにデータベースを作成することはできたので今回はPHPに入りたいと思います
まずはrootディレクトリから“`/var/www/html/“`ディレクトリにPHPファイルを作成します。“`cd“`コマンドを使用して“`html“`ディレクトリに移動して、今回は“`te

元記事を表示

Laravelプロジェクトでの写真圧縮 — Intervention Imageライブラリの使い方に関する備忘録

### 概要

Laravelでの写真アップロード機能において、画像の圧縮はストレージの節約とパフォーマンス向上に重要です。この記事では、PHP用の画像操作ライブラリ「Intervention Image」の使い方について、私が開発中に経験した内容を備忘録としてまとめます。今回は、PHPのバージョンの関係で最新バージョン3ではなく、2.7を使った具体的な実装例を紹介します。

### 1. Intervention Imageライブラリとは?

Intervention Imageは、PHPで画像操作を簡単に行えるライブラリです。このライブラリを使用することで、画像のリサイズやトリミング、フィルターの適用など、様々な画像操作が可能になります。今回のプロジェクトでは、特に画像の圧縮とリサイズに焦点を当てて使用しました。

– **使用したバージョン**: `intervention/image` バージョン `2.7`
– 最新バージョンではなく、PHPの互換性(PHP 8.2がサポートされていない)と他の依存関係のため、バージョン `2.7` を選択しました。

### 2.

元記事を表示

サーバーのOSと開発環境でのフレームワーク等のバージョニングに関する備忘録

### 概要

サーバーのOSや開発環境で使用するフレームワークやライブラリのバージョン管理は、プロジェクトの安定性と互換性を保つために非常に重要です。今回の開発では、AWSのAmazon Linux 2を使用しており、PHP 8.2をインストールできない問題や、使用するライブラリのバージョン制限に直面しました。この記事では、こうしたバージョニングに関する注意点について備忘録としてまとめます。

### 1. 開発環境とサーバー環境のバージョン管理の重要性

開発環境とサーバー環境で異なるバージョンのOSやフレームワークを使用すると、依存関係の問題や互換性の問題が発生する可能性があります。特に、以下の点に注意が必要です:

– **PHPやNode.jsのバージョンの互換性**
– **使用するライブラリやフレームワークのサポート状況**
– **OSバージョンに依存するパッケージのインストール可否**

### 2. Amazon Linux 2とPHPのバージョン互換性問題

今回のプロジェクトでは、AWSのAmazon Linux 2を使用していましたが、PHP 8.2のインスト

元記事を表示

LaravelとLivewireでの日報管理システム開発に関する備忘録

### 概要

日報管理システムの開発では、リアルタイムなユーザーインターフェースを提供することが求められました。LaravelのLivewireを使用することで、フロントエンドとバックエンドのコードを統合し、効率的な開発が可能になりました。ここでは、開発中に学んだポイントを備忘録としてまとめます。

### 1. Livewireを使ったリアルタイムなUIの実現

Livewireを使うことで、ページのリロードを必要とせずにリアルタイムでデータを更新できます。以下は、私が日報作成画面で使用したLivewireコンポーネントの一部です。

“`php
namespace App\Livewire;

use Livewire\Component;
use App\Models\DailyReport;
use App\Models\User;
use App\Models\Scheduled;

class DailyReportForm extends Component
{
public $reportDate;
public $userId;
publi

元記事を表示

初心者向けLaravel入門ガイド:基礎から学ぶMVCとデータベース操作

## **1. はじめに**

### **Laravelの概要と本記事の目的**

LaravelはPHPで構築されたフレームワークで、開発の効率を高めるための豊富な機能とシンプルな構造を提供します。本記事では、Laravelの基本構成について学びながら、簡単なToDoアプリを具体例としてその理解を深めます。

### **Laravelの特徴や利点**

– **シンプルなルーティング**: 明確で直感的なルート定義
– **強力なEloquent ORM**: データベース操作が簡単
– **Bladeテンプレートエンジン**: 効率的なビュー作成
– **豊富なドキュメント**: 初学者にも優しい

## **2. 環境構築**

### **必要なツール**

– **Composer**: PHPの依存管理ツール
– **PHP**: サーバーサイドスクリプト言語
– **Laravel**: PHPフレームワーク

### **Laravelプロジェクトの作成(簡潔に)**

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

“`bash
co

元記事を表示

PHPのオブジェクト指向プログラミング: トランプゲームを作成する過程で学んだこと

## **はじめに**

この記事では、PHPのオブジェクト指向の概念を理解するために、トランプゲームのクラスとインスタンス、メソッドとプロパティをどのように実装し、それらの技術要素がどのように連携してゲームを構築するのかについて共有します。

## **オブジェクト指向の基礎**

### **クラスとインスタンスの例: デッキとトランプカード**

“`php
class Card {
public $suit;
public $value;
function __construct($suit, $value) {
$this->suit = $suit;
$this->value = $value;
}
}

class Deck {
public $cards = [];
function __construct() {
$suits = [‘Hearts’, ‘Diamonds’, ‘Clubs’, ‘Spades’];
$values = [‘2’, ‘3’,

元記事を表示

WordPressのSmart Custom Fieldsが、多言語サイト作成プラグインBogoで翻訳した固定ページに設定できない件の対策

WordPressの便利なプラグインである、
非常に直感的に多言語サイトが作れる多言語化プラグイン「Bogo」と、
設定したカスタムフィールドを必要に応じて繰り返し使える機能が無料で使える
カスタムフィールド作成プラグイン「Smart Custom Fields」ですが、
併用した場合に、固定ページを複製した翻訳ページへは、
管理画面からSmart Custom Fieldsで設定したカスタムフィールドを設定することができません。
(※カスタム投稿タイプ、および通常の投稿ページの翻訳ページには、元の投稿に設定されたカスタムフィールドがそのまま反映されます)

###### 固定ページを作成
![スクリーンショット 2024-09-11 23.17.47.png](https://qii

元記事を表示

PHPを使ってXFFの値をアクセスログに出力する方法(Xserver編)

### 概要
レンタルサーバー環境(Xserver等)では、Apacheのアクセスログフォーマットを自由に変更できない場合が多くあります。

クライアントのIPアドレスとしてX-Forwarded-For(XFF)の値を記録したい場合、標準ログの代わりにカスタムログを出力する必要があります。本記事では、PHPを使ってXFFの値を含むカスタムアクセスログを生成する方法を紹介します。

### なぜXFFが重要なのか

WAFやCDNを利用している場合、サーバーが直接受け取るIPアドレス(`REMOTE_ADDR`)はプロキシやCDNのものになることが多く、実際のクライアントIPを取得できません。XFFヘッダーは、そのような環境でクライアントの実際のIPアドレスを取得するために使われます。

### 実装手順

#### 1. logディレクトリの作成

ログファイルを保存するためのディレクトリを作成します。SSHやFTPを使用する方法もありますが、今回はXserverのコントロールパネルから「ファイルマネージャー」を使用します。

![CleanShot 2024-09-16 at 17

元記事を表示

【PHP8.4】round関数で任意桁数の切り捨て切り上げができるようになる

[round](https://www.php.net/manual/ja/function.round.php)は四捨五入する関数です。
PHP8.4以降、この関数で小数の切り捨て切り上げができるようになります。

あれ?[ceil](https://www.php.net/manual/ja/function.ceil.php)・[floor](https://www.php.net/manual/ja/function.floor.php)は?

実はceil・floorは桁数指定ができないんですよね。
必ず整数値にさせられてしまい、小数点3桁で切り捨てみたいなことができないのであまり役に立ちません。

ということで以下は該当のRFC、[Add 4 new rounding modes to round() function](https://wiki.php.net/rfc/new_rounding_modes_to_round_function)の日本語訳です。

なお、この後[Correctly name the rounding mode and make it an E

元記事を表示

新人PGのLaravel備忘録~ユーザー認証時の項目追加~

# はじめに
こちらは筆者がLaravelに関する知識の定着を図るための投稿です。
以下の点にご注意ください
* この記事の読者は私と同じ実務歴半年~1年程度の新人PGの方を想定しています
* 記事内において間違いや冗長な説明が多々あることをご容赦ください
* 公式ドキュメントと相違がある場合はそちらを参考にしてください
* 公の場で記事を引用していただく場合は予めご連絡ください
* コメント大歓迎です!!出来るだけ返信しようと思っております!!
# 今回のテーマ
Laravelではユーザー認証機能を簡単に実装できるようにいくつかの無料パッケージを提供しています。今回はその中の一つであるLaravel Breezeパッケージを使用してユーザー認証を行った際にメールアドレスとパスワード以外の項目もログイン認証に用いる方法を紹介します。

:::note warn
今回はLaravel 11で実装しています。他バージョンでの実装時は[公式ドキュメント](https://laravel.com/docs/11.x/authentication#main-content)も参照してください
:

元記事を表示

関数をphpunitでテストするサンプル

AIくんに聞いてみた
“`

元記事を表示

マイジオ(MyGeo)を作ってみた。(Youは、自分が作ったGeoデータをどうやって外出先のスマホ・タブレットで見る?)

【マイジオ】
https://office-shirado.com/mygeo/

「Youは、自分が作ったGeoデータをどうやって外出先のスマホ・タブレットで見る?」

そんな素朴な疑問を自分に投げかけ、「あっないかもw」ということで、新しいWeb地図を作成しています。
![画面イメージ01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/67836/534a9cd2-bdfa-11c3-6ee8-a199bda299cb.png)
![画面イメージ02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/67836/1eef94b8-abeb-63ca-263b-5693583a406d.png)

いつも通り、「自分が使うWeb地図」を目指しています。
Web地図(WebGIS)のベースは、MapLibreで、データはMySQLのテーブルに入れています。

技術的なことを簡単に言うと、ローカルファイル(SIMA・GeoJS

元記事を表示

オブジェクト指向の世界に入門② ポリモーフィズムについて

# はじめに
以前、書いた記事の続きです。
オブジェクト指向の実践において大事な考え方であるポリモーフィズムについての記事になります。

※今回も記事内の言語はPHPで書いています。

# この記事の目的
オブジェクト指向って結局何なの?ということで、「Clean Architecture(Robert C. Martin)」を読んでみるとどうやら「ポリモーフィズムを使用することで、システムにあるすべてのソースコードの依存関係を絶対的に制御する能力」であるらしく、継承やカプセル化に比べて、ポリモーフィズムは特に大事な概念のようです。
今回は、このポリモーフィズムってそもそも何なの?ということを記事にしてみようと思います。

# ポリモーフィズムって何?
ポリモーフィズム(多態性)とは、**「異なるクラスでも、同じメソッドを使って異なる処理を実行できる仕組み」** ことを意味します。ポリモーフィズムを使うと、コードの柔軟性や再利用性が向上し、クラスやメソッドが特定の実装に縛られることなく、異なる型のオブジェクトを扱うことができるのですが、どういうことか具体的な例を見てみましょう。

例え

元記事を表示

PDOってよくわからず使ってない?

## はじめに

PDOについて理解せず使っていたので今回PDO学びました。
使い方というよりPDOって何なのかを記事にしております。

基本ブラックボックスで使って問題ないものなので初学者は飛ばしてもいいと思います
自分も初学者でインプット目的で書いてるのであしからず。
ただ(細かくを書くことはできないが)参考にしていただけたら幸いです。

## そもそもPDOって何?
PDOは、PHP Data Objects の略で、
`「PHPでDBに接続するためのオブジェクト指向プログラム」`

※自分の解釈なので間違っているや、こういう解釈の方がいいなどあればご教授くださいまし。

脆弱性や柔軟性、拡張性がよいのでよく使われる。

脆弱性・・・SQLインジェクションをプリペアドステートメントを使うことで防ぐことができる。
柔軟性・・・DBが変わっても一部変更すればDBの切り替えに対応できる。
拡張性・・・エラーハンドリングなどのオプションを追加変更が容易

## PDOは、PHPのライブラリ

PDOはPHPのライブラリとして提供されているので
PHPのドキュメントに書かれている。
[PD

元記事を表示

PHP オブジェクト指向覚書き「超基礎」

## はじめに

プロパティやメソッドなどの超基本についてだけまとめました。
全部頑張って書こうと思いましたが
カプセル化、継承、staticなど先が見えず心が折れ、
とりあえず書いたところまでの投稿です。
初学者はまずここまで理解しようということで。

## オブジェクト指向とは

オブジェクト指向は
クラス(class)という設計書の中に
プロパティやメソッドなど(部品)をひとまとめにして
この設計書を元に作ったもののことをインスタンスという。
 
プロパティは変数、
メソッドは関数と認識して今のところは問題ない。
 
※自分が最初理解するのにわかりづらかったことは
何をオブジェクトと呼ぶのか?
この記事最後に話そうと思う。

## 基本的な使い方(プロパティ、メソッド)
 
“`diff_php

元記事を表示

OTHERカテゴリの最新記事