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

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

FuelPHP の migrate Task

# 概要
FuelPHP では Database の Migration は `migrate` Task を用いて行う
`migrate` Task にはいくつかのコマンドとオプションが用意されている

また FuelPHP の Migration File は `fuel/app/migrations/nnn_xxx.php` のフォーマットとなっており
`nnn` にはバージョン番号、`xxx` には Class 名が入る
基本的には `nnn` も `xxx` も同じ値は利用してはならない

もし被ってしまった場合
`nnn` は `php oil refine migrate:current` や `php oil refine migrate –catchup` を利用することで同じバージョンでも実行可能
`xxx` は `php oil refine migrate:up` や `php oil refine migratre:down` で1件ずつ処理するなどして、同じ Class を読み込まないようにすることで実行可能

またバージョン (`nnn`) は3桁である

元記事を表示

【覚え書き】AlmaLinux9.3でのLAMP環境構築手順(Apache+MariaDB+PHP)

## はじめに
CentOS Linux 7 は、2024 年 6 月 30 日にサポート終了 (EOL) となります。この後継としてAlmalinuxを選ぶことが多くなってきました。そこで現時点の最新のAlmalinux9のインストール後の初期設定とLAMP環境構築手順を、備忘録的に記しておきたいと思います。

## 構築するLAMP環境
L: AlmaLinux 9.3 (Shamrock Pampas Cat)
A: Apache/2.4.57 (AlmaLinux)
M: mysql Ver 15.1 Distrib 10.5.22-MariaDB
P: PHP 8.3.6

## この手順を始める前の前提
* 物理サーバーもしくは仮想サーバーへは、AlmaLinux9.3 がインストール済みであること
* インストール時に、言語を「日本語」に設定済みであること
* インストール時に、ネットワーク設定済みであること
* インストール時に、NTP設定済みであること

## 1. dnfまわり
### 1-1. メタデータキャッシュの作成
“`ba

元記事を表示

dependabot の pull request が作成されない事象の対応(PHP)

## 記事対象者
dependabot の 諸々の設定は完了しているが、 Pull request が作成されない状況になっている方

## 解決方法

composer.json に phpのバージョン情報が記載されていない可能性がある。

composer.json に以下のようにphpのバージョン指定を行う。

“`
“require”: {
“php”: “^8.1”,
.
.
“`

参考: https://github.com/dependabot/dependabot-core/issues/5301#issuecomment-1851597423

元記事を表示

ウィキペディアのAPIを取得するPHP雛形

### ウィキペディアのAPIを取得するPHP雛形です.
ご自由にコピペ可変してお使いいただければと思っています.
なお、制作するに当たって下記を参考にしています.

https://qiita.com/yubessy/items/16d2a074be84ee67c01f

“`php:classWikipediaApi.php
‘記事タイトルを入力してください’], JSON_UNESCAPED_UN

元記事を表示

PHPでundefinedになる組み合わせをChatGPTに聞いて表形式でまとめてもらう。

# 経緯
PHPでundefinedになるパターンをいつも頭の中では何となくしか覚えていない状態でした.
そこで今回ChatGPTで表形式にしてもらいました。
※ChatGPT4による回答のためある程度精度が高いとは思いますが間違っている場合もありますので、ご了承ください。

## undefinedになる組み合わせ
| ケースタイプ | コード例 | 結果 |
|——————————-|—————————————|————————————-|
| 未定義の変数にアクセス | `$value;` | Notice: Undefined variable: value |
| 配列の未定義の

元記事を表示

【WordPress】wp_enqueue_scriptにtype=moduleやasyncを追加する方法

# はじめに

wp_enqueue_scriptを使うと、scriptタグの書式が固定されてしまいます。
type=module/async/deferなどを追加する方法を解説します。

# 解決方法

下記をfunctions.phpに追記しましょう。
下記の例だと、hogeとpiyoのみmoduleで読み込むことができます。
スクリプトタグの修正箇所にasyncなどの文字列を追加して、別のパラメーターを付与することもできます。

“`functions.php

// スクリプト読み込み
wp_enqueue_script(‘hoge’, __DIR__ . ‘js/hoge.js’, [], ‘1.0.0’, true);
wp_enqueue_script(‘fuga’, __DIR__ . ‘js/fuga.js’, [], ‘1.0.0’, true);
wp_enqueue_script(‘piyo’, __DIR__ . ‘js/piyo.js’, [], ‘1.0.0’, true);

function add_type_attribute($tag, $han

元記事を表示

laravelのsailでseeder作成/実行してデータを投入する

# 環境
php 8.3.6
laravel Framework 11.4.0
composer 2.7.2

# seeder作成
“`
./vendor/bin/sail php artisan make:seeder MasterAiChatSeeder
“`
/database/seeders/MasterAiChatSeeder.phpのファイルを修正
“`
‘reactは勉強中です’],
[‘chat’ => ‘laravelもやっています’],

元記事を表示

Laravel × MongoDB

# 初期設定

1. ComposerでMongoDBのドライバをインストールします。

“`plaintext
$ composer require jenssegers/mongodb
“`

2. config/database.phpファイルで、connectionsへMongoDB接続用の新しい接続を追加します。

“`php
‘mongodb’ => [
‘driver’ => ‘mongodb’,
‘host’ => env(‘MONGO_DB_HOST’, ‘localhost’),
‘port’ => env(‘MONGO_DB_PORT’, 27017),
‘database’ => env(‘MONGO_DB_DATABASE’),
‘username’ => env(‘MONGO_DB_USERNAME’),
‘password’ => env(‘MONGO_DB_PASSWORD’),
],
“`

3. `.env`にMongoDBへの接続情報を書き加えます。\
“`plainte

元記事を表示

【Laravel】日付処理で混乱した話

# 概要
EloquentモデルのオブジェクトをtoArray()すると **日時が9時間前になってしまう**

Hogeテーブル

id

..

updated_at

1

2021-06-24 17:50:31

2

2021-06-24 17:50:31

3

2021-06-24 17:50:31

“`php:コード例
$result = HogeModel::first()->toArray();
var_dump($result); // “updated_at” => “2021-06-24 17:50:31″を想定
“`

“`php:実行結果
array(1) {
[“updated_at”]=>
string(27) “2021-06-24T08:50:31.000000Z” //

元記事を表示

Stripe決済開発で必要なアカウント申請内容と必要書類

## はじめに
StripeCheckout を使用した決済機能開発時に、テスト用トークン発行まではすぐできるものの、本番用トークンを使用できるようにするまでに追加の申請が多々必要になります。

各種アカウント情報の申請には数日間の審査が必要になるので、本番環境への反映時に申請に手こずり、開発スケジュールに影響が出ないよう申請内容/必要書類を把握しておく必要があります。

今回の実装で必要になった申請内容を以下にまとめる。

> [StripeCheckout](https://docs.stripe.com/payments/checkout/how-checkout-works?locale=ja-JP) とは以下のようなStripeサービス側のUIを使用して決済する決済方式のことである。

![Group 24.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3774903/7d99bcf5-113e-9927-3510-72472b72ef25.jpeg)

:::note warn
注意
この記

元記事を表示

【PHP初心者向け】for文の中で実行した関数内の処理によってループを終了させる

※プログラミング初学者なので内容に誤りを含む場合があります。

初歩的な知識であると思われるが、検索しても意外と見つけづらかったので残しておく。

例題として、1~10までの数字を生成する処理を無限ループさせ、1が2回連続出ればループを終了させるコードを考えてみる。

“`error.php
for ($i = 0;; $i++) {
echo $i + 1 . ‘回目の挑戦です。’ . PHP_EOL;
$num1 = rand(1, 10);
if ($num1 === 1) {
echo ‘1回目の1です!’ . PHP_EOL;
stop();
} else {
echo ‘1回目は1が出ませんでした。続きます。’ . PHP_EOL;
}
}

function stop()
{
$num2 = rand(1, 10);
if ($num2 === 1) {
echo ‘2回目の1です。お見事。終了します。’ . PHP_EOL;
brea

元記事を表示

PHPのプロジェクトにサクッとwysiwygエディタ を実装する

## 使用したもの
CKEditor(4.22.1)

## インストール方法
下記のサイトにアクセス
https://ckeditor.com/ckeditor-4/download/?null-addons=#ckeditor-4

任意のバージョン、パッケージを選択しzipをダウンロード
※バージョン、パッケージによっては有料のものもあります。その場合コンソールにエラーが表示されるので注意
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/370336/9fe2b9ed-c2c3-6102-7104-475e939b5279.png)

下記のように設置
“`





元記事を表示

$_FILES

## はじめに

$_FILESについて整理する。

### $_FILES

アップロードファイルの情報を取得する。

“`
$_FILES[‘要素名’][‘情報名’]
“`

要素名はタグのname属性で指定された値
情報名には以下のような値を設定できる。

name: ファイル名
type: コンテンツタイプ
size: データサイズ
tmp_name: サーバー上に仮保存された時の一時ファイル名
error: アップロード時のエラーコード

### アップロードの実処理

move_uploaded_file関数で一時フォルダーから本来の保存先にファイルを移動する。
(PHPでは、クライアントからファイルを受け取ると暫定的に仮のフォルダーに保存している。)
name, temp_nameキーから、それぞれオリジナルのファイル名と一時的なファイルの保存先を保持している。

“`php:move_uploaded_file.php
$src = $_FILES[‘upfile’][‘tmp_name’];
$dest = $_FILE

元記事を表示

投稿カテゴリを表示するWordPressカスタム関数の作成

WordPressで投稿のカテゴリを取得し、ウェブページに表示する方法を詳しく解説します。

“`php
function get_post_category($anchor = true) {
$category = get_the_category();
if ($category[0]) {
if($anchor) {
echo ‘PHP include_pathの設定

# PHPにinclude_pathを追加するには

## 対象者
・ include_pathの追加方法が分からない
・ そもそもphp.iniってどこにあるんだっけ?

## PHPバージョン
PHP 8.2.18
## OS
macOS sonoma v14.4.1

OTHERカテゴリの最新記事