PHP関連のことを調べてみた2022年03月16日

PHP関連のことを調べてみた2022年03月16日
目次

WordPressのAdvancedCustomFieldsに「JavaScriptで」デフォルト値を設定する方法

# はじめに

以前、[PHPでWordPressのデフォルト値を設定する方法](https://qiita.com/qwe001/items/2c05a2be5434eb9a092d)を説明しました。
ですが、私の案件は、ページ読み込み時にデフォルト値を設定するのではなく、
特定のカスタムフィールドの値変更をトリガーにして、デフォルト値を設定するというものです。

$\tiny{…いる?}$

そのため、JavaScriptでinput changeイベントを取らなくてはなりません。
でも、ACFのデフォルト値を変更する方法は、PHPでのやり方ならネットにいくらでもありますが、
JavaScriptで書き換える方法が全然載ってないので、備忘録がてら書くことにしました。

# 仕様

* ページ読み込み時は何もしない
* 表示開始日付(open_date)の値が更新された時、表示終了日付(close_date)に一カ月後の値をセットする
* 表示終了日付(close_date)に既に値がある場合、何もしない

# 下準備

まずは、管理画面でだけ使うJavaScriptファイルを用意し

元記事を表示

【Laravel】UUIDカラムをURLに割り当てるとルートに割当されなかったので

# 概要

主キーを`UUID`にする必要があったので以下の記事を参考に導入した。

ルートモデルバインディングで`UUID`を割り当てると`404`エラーでルートに到達できない事象があったので解決方法をまとめる

“`php:web.php
group(function () {
Route::get(‘/edit/{uuid?}’, [PostController::class, ‘edit’])->name(‘admin.posts.edit’);
});
“`

https://qiita.com/ucan-lab/items/a8374ba421fe7828dcb9

# 環境
– PHP 7.4.25
– Laravel Framework 6.20.44
– laravel-eloquent-uuid v6.*

# 導入手順

https://github.com/goldspecdigital/laravel-eloquent-uuid

“`bash
composer require gold

元記事を表示

Ruby、PHP、Python、JavaScriptの特徴とコードを比較してみた(言語選定と言語チェンジのための参考資料)

# この記事の概要
代表的なプログラミング言語“`Ruby、PHP、Python“`といったWeb開発などで使われる
人気のバックエンドの言語をそれぞれ比較した記事です。

後フロントエンド言語の“`JavaScript“`も比較していきます。

初学者でどの言語をやればいいのかわからない時、
言語を変える時の参考になると幸いです。

# Webの仕組み
クライアントとサーバーの関係とリクエストとレスポンスの関係がわかれば
今回は大丈夫です。

https://qiita.com/Hashimoto-Noriaki/items/c5c9eb26565b01150556

***サーバー側で処理をするのがRuby、PHP、Python***で
***クライアントのようなブラウザを操作するのがJavaScript***です。

## Ruby
Rubyは初学者向きのプログラミング言語で、
プログラミングスクールでよく使われる言語です。
***Webアプリケーションの開発で使用されるサーバーサイド言語***です。

フレームワークの代表的なのが***Rubyon rails***で

元記事を表示

よくわかりPHPの教科書 たにぐちまこと

PHPは、研修助手をしたことがある。

実用的なプログラムは1mmも書いたことがない。

学生、研修生のPHPのレビューをしたことがある。

1mmも意見を言っていない。

みんなの意見に「そうだね」って乗っかるだけ。

<この項は書きかけです。順次追記します。>

よくわかりPHPの教科書

https://bookmeter.com/books/12784536

この本の何がいいかって、文法からはじめていないとこ。

最初に覚えるプログラミング言語は何がいいですか?

https://qiita.com/kaizen_nagoya/items/590704e76e287707637b

PHPから動かした人に、どういう助言をするといいか見渡そう。

# 参考資料

「DockerでPHP7.0×Apacheの環境を構築する@kurkuru」IT業界新人利用時の16の壁(mac mini編)docker(80)

https://qiita.com/kaizen_nagoya/items/315e8d05a6eef00b56d1

<この記事は個人の過去の経験に基づ

元記事を表示

CodeIgniter CRUDサンプルコード及び認証

# 1.始めに
 受注した案件でCodeIgniterを使うことになりましたので勉強と備忘録を兼ねて記事を残すことにします。CodeIgniterはPHPフレームワークの一つです。詳しく知りたい方はググってください。ここではチュートリアルのコードを拡張してCRUDのサンプルコード書きましたので入門者の参考になればと思います。なお、composer又は公式サイトからファイルをダウンロードする形のいずれかのやり方でプロジェクトを作成済みとして話を進めます。

動作環境:
Windows11
xampp
CodeIgniter4

# 2.CRUD
 Webフレームワークを扱う方にとってはCRUDって身近な用語だと思います。Create, Read, Update, Deleteの略で、この基本形と認証周りさえ扱えればアプリのバックエンドの構築には困りません。
 早速CRUDのコードの方から書いていきます。DB設計とかはCodeIgniterのチュートリアルに合わせてますのでチュートリアルがまだの方は後述のサイトからチュートリアルをやってみてください。

“`php:アプリ名\app\Mo

元記事を表示

smartyの値を確認する方法(var_dumpが使える)

– smartyの中身を確認するコマンド。
– PHPでvar_dumpを使うことがあると思うが、smartyでもvar_dumpを使うことができる。

## 使い方
“`smarty:var_dunp
{{$hoge|@var_dump}}
“`
$hogeの値を確認することができる。
( {} が1個か2個は自分が使用している方で書く。)

元記事を表示

[Laravel][スノーボード初心者に役立つサービスを作りたい!]という思いでポートフォリオを作成しました。

# アプリ概要
スノーボードでできない技や、わからいことを解決したい!と思いスノーボードに関するQ&Aサイトを作りました。
# advance
![Animation3.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2565050/34ef427b-8106-f854-e06e-53fbe2cd4106.gif)
サイトリンク↓

https://snowboarder.herokuapp.com/home

コード↓

https://github.com/orange7354/snowboard

# 開発の目的 背景 狙い
## 目的
– スノーボードに関する疑問やスキル上達に役立てるため

## 背景
– 大学生になりスノーボードを始める人が多く、周りに上級者がいない人が多い。
– トリックや滑り方が分からず挫折する人が多い。
– どこが出来ていないか分かりづらくなかなか上達しにくい

## 狙い
– 上達スピードの効率化
– 上手に出来ず挫折する人を減らす
– 写真や動画をuploadeする事

元記事を表示

Windows で PHP8+Apache+MySQL+phpMyAdmin の開発環境をXAMPP無しで構築する方法

# 初めに
C直下に置く方法はあってもそれ以外で構築する方法が探してもなかったので掲載。
個人的に開発関係は`C:\Program Files (dev)`というディレクトリに保存していたので、ここに、
`C:\Program Files (dev)\Apache`
`C:\Program Files (dev)\php`
みたいな感じで配置する。
各ソフトの設定もそのディレクトリに合わせて変更する。

# PHP8
概要は、PHPをダウンロードしてパスを通すだけの簡単なお仕事です。
### 1. Download PHP

https://www.php.net/downloads.php

ここにPHPのダウンロード一覧があるので、`Current Stable PHP8.*.* (Changelog)`ってところの、`・Windows downloads` からダウンロードページに飛ぶ。

いろいろあるが、`x64 Thread Safe`の大枠のところから、Zipを選択してダウンロードする。

### 2. 配置
ダウンロードしたファイルを解凍して、任意の場所に配置する。冒頭に

元記事を表示

Laravel: composer update したら500エラー(このページは動作していません: HTTP ERROR 500)

[結論から読みたい人はコチラ](https://qiita.com/chimayu/items/da893e5f5cef1c02fbb1#%E8%A7%A3%E6%B1%BA%E6%96%B9%E6%B3%95)

#### 環境

Laravel 6.x + docker-compose (PHP 7.3 / nginx 1.9 / Redis 5.0) を使用。

“`zsh
% php artisan -V
Laravel Framework 6.18.24
“`

マシンにプリインストールされているPHPは `7.4.28`

“`zsh
% php -v
PHP 7.4.28 (cli) (built: Mar 1 2022 01:37:04) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.28, Copyright (c), by Zend Technologies
“`

Dock

元記事を表示

WordPressでサブループをよく使う場面

普段仕事でWordPressを使用するので、サブループをよく使用する場面をメモ。

## トップページでカスタム投稿の記事を3件だけ出力したい

3件じゃなくてもいいのですが…コーポレートサイトではほぼ間違いなくあるんじゃないでしょうか。

例えば「新着情報」として、informationというカスタム投稿を出力したい場合
“`php
$paged,
‘posts_per_page’ => 3,
‘post_type’ => ‘information’
));
if ( $query->have_posts() ):
while ( $query->have_posts() ) : $query->the_post();?>

// ループの内容



“`

ちなみにifとwhileは一緒の

元記事を表示

TinyMCEにPDFアップロード機能を実装する方法

# デモ

See the Pen
TinyMCE PDF File Upload Example
by qwe001 (@qwe001)
on CodePen.

<

元記事を表示

PHP Interface

# オブジェクト インターフェイス
**メソッドの実装を定義せず**に、クラスが実装する必要があるメソッドを指定する。

通常のクラスと同様に定義できるが`class`ではなく`interface`を用いる。

“`php
interface HogeRepository
{
public function create(): Hoge;
public function delete(int $id): bool;
}
“`

# 役割
– 同じインターフェイスを実装していることで、開発者が交換可能な異なるクラスを作成できる。
実装が異なっていても、**インターフェイスを使うコードに変更を加えることなく、実装を交換**することができる。
– メソッドがインターフェイスを満たす引数を受け付け、操作できるようにする。
**中身が何をするのかや、どう実装されているかを気にする必要がない**。

# implements(実装)
インターフェイスを実装するクラスに宣言する。

“`php
class HogeProvider implements HogeReposito

元記事を表示

【3分で終わる】とにかく簡単にphpのフォーマッターを導入する(PHP-CS-Fixer)

## PHP-CS-Fixer

https://github.com/FriendsOfPHP/PHP-CS-Fixer

PSR-1、PSR-2などで定義されているPHPコーディング規約に整形してくれるツールです。

## 一番簡単な方法

ひとまずインストールします。
“`shell
$ composer require –dev friendsofphp/php-cs-fixer
“`

composer.jsonのscriptsに下記を記載します。
(ルールはお好みで)
“`json
{
“scripts”: {
“fixer”: [
“vendor/bin/php-cs-fixer fix src –rules=@Symfony,@PhpCsFixer,@PHP80Migration,declare_strict_types –allow-risky=yes”
],
}
“`

実行すると整形されます。
“`shell
$ composer fixer
> vendor/bin/php-cs-

元記事を表示

Laravelサービスプロバイダ

# 概要
初期起動処理。
サービスコンテナの結合や、イベントリスナ、フィルタ、ルートなどを登録することを一般的に指す。

Laravelの場合、プロバイダクラスは`config/app.php`内の`providers`配列に設定する。

# 記述
– 全てのサービスプロバイダは`ServiceProvider`クラスを拡張する
– `register`と`boot`メソッドを持つ
– `register`メソッドの中では**サービスコンテナへの登録**だけを行わなければならない
– `make:provider`コマンドにより、新しいプロバイダが作成できる

“`
php artisan make:provider HogeServiceProvider
“`

## registerメソッド
**サービスコンテナ**に何かを結合することだけを行う。
Laravelにおけるサービスコンテナとは、クラスの依存関係を管理し、依存注入を実行するツール。

サービスプロバイダ内では`$this->app`を介しコンテナにアクセスできる。

“`php
use App\Services\

元記事を表示

コールバック関数とは【個人的なお勉強アウトプット】

関数に引数として渡される関数
対象の関数のなかで実行してほしい内容を渡すイメージ

# わかりやすい記事
https://wa3.i-3-i.info/word12295.html

元記事を表示

無名関数(クロージャ)とは【個人的なお勉強アウトプット】

関数には名前をつける。
ただ、名前をつけるのもそれなりに面倒、その場限りで使う関数もある。
そんな時は名前をつけなくてもよい。
それが無名関数。

# わかりやすい記事
https://wa3.i-3-i.info/word15754.html

元記事を表示

UploadedFile::fake()->image()を使うとCIでのみエラーが出る

## 問題

GitLab Runnerで`Uploadedfile::fake()->image()`を使ったユニットテストを
走らせると以下のようなエラーが出ました。
(ローカルではエラーなく通っています。)

“`bash
TypeError: call_user_func(): Argument #1 ($callback) must be a valid callback, function “imagejpeg” not found or invalid function name
“`

要約すると、以下の通りです。
call_user_func()の第一引数には有効なコールバック関数を渡してください。
“imagejpeg”なんて名前の関数は存在していないか有効ではありません。

この原因の詳しい説明については以下の記事をご覧ください。
Laravelのバージョンアップにて一部メソッドの挙動が変更されたことが原因だそうです。

https://qiita.com/yamotuki/items/b7832973833bcb06c157

## 解決策

解決策は、以下

元記事を表示

【MySQL】UPDATE・DELETE・INSERT実行後に処理件数を取得する方法

UPDATE・DELETE・INSERT実行後に出力される“Query OK, 1 row affected“の件数を取得する方法です。
“`sql
mysql> UPDATE animals SET name = ‘cat’ WHERE name = ‘lion’;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
“`

SQLとPHP、2種類の方法を説明します。

# SQLで取得する
“ROW_COUNT()“関数で取得できます。
必ずステートメント(UPDATE、DELETE、INSERTなどの実行単位)の完了直後に実行してください。

## ROW_COUNT()の使い方
“SELECT ROW_COUNT();“を実行します。

“`sql
— UPDATE
mysql> UPDATE animals SET name = ‘dog’ WHERE name = ‘wolf’;
Query OK, 7 rows affected (0.00 sec)

元記事を表示

RHEL 8.5にOSS版httpd 2.4.52をインストールする(番外編-phpを利用する)

# 前回
[RHEL 8.5にOSS版httpd 2.4.52をインストールする(2)](https://qiita.com/hykwrtr/items/5581cab77871807594a5)

# 概要
インストールしたOSS版httpdでphpを動かしたいのでインストール&設定をした
CentOS8からモジュール版phpは使われなくなったようなのでphp-fpmを利用する

# 前提
– RHEL 8.5
– httpd 2.4.52 (ソースからインストール、前回の記事参考)
– php 7.4.28 (remi)

# インストール

“`
sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm

sudo dnf module reset php
sudo dnf module install p

元記事を表示

Laravel foreach内でループ回数を取得する

# foreach内でループ回数を取得したい
bladeテンプレートのforeachディレクティブ内で、$loop変数にアクセスできる

“`php
@foreach
@if($loop->iteration % 2 == 0)
// 偶数
@else
// 奇数
@endif
@endforeach
“`

## プロパティ
|プロパティ|説明|
|:———|—-|
|$loop->index|現在の反復のインデックス(初期値0)|
|$loop->iteration|現在の反復数(初期値1)|
|$loop->remaining|反復の残数|
|$loop->count|反復している配列の総アイテム数|
|$loop->first|ループの最初の繰り返しか判定|
|$loop->last|ループの最後の繰り返しか判定|
|$loop->even|今回が偶数回目の繰り返しか判定|
|$loop->odd|今回が奇数回目の繰り返しか判定|
|$loop->depth|現在のループのネストレ

元記事を表示

OTHERカテゴリの最新記事