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

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

関数の呼び出し(PHP)

関数の呼び出しを使ったサンプルプログラムです

“`HTML






関数テスト



元記事を表示

Laravelで使えるテンプレートエンジン『BLOCS』を使ってみた!

エンジニア歴1年、Laravel使用歴半年程度の私が、HTMLと親和性の高いテンプレートエンジン『BLOCS』を使ってみたので、使用感をご紹介します。

ひよっこエンジニアにはBladeがややこしい!

Laravelを使っている方であれば、標準のテンプレートエンジンであるBladeを使っている方がほとんどかと思います。
経験豊富なエンジニアであれば、Bladeを不便なく使うことができるでしょう。しかし、ついこの間PHPに触れたばかりのひよっこエンジニアにとって、Bladeを使ってテンプレートを作成することは、PHPでプログラムを行うのと大差ない抵抗感を覚えることも多いのではないでしょうか。

例えば、コントローラーから受け取った“`$name“`という値をそのまま表示するだけであれば、Bladeで下記のように書けばよいだけです。
“`html:example.blade.php

Hello, {{$name}}.

“`
ここまでは、初心者でも簡単に理解できます。
しかし、“`$name“`がある時だけ表示したいなど、ifの条件がある時には下記

元記事を表示

PHPでPIDが存在するかチェック【file_exists vs posix_getpgid vs is_dir vs posix_kill】

# TL;DR

`posix_getpgid($pid)`を使うのがオススメ

https://stackoverflow.com/questions/9874331/how-to-check-whether-specified-pid-is-currently-running-without-invoking-ps-from

PHPでPIDがあるか確認する方法はいくつかあるが、最速を検討する

“`php
random_int(1, $pid_max), range(1,2**20));

$start = microtime(true);

元記事を表示

ページングしながら全体の表示件数をある倍数にする

“`php
$maxPage = $lastPage = (int) ceil($totalCount / $this->getDisplayNumber());
// 1ページでおさまるときは調整しない
if (1 < $lastPage) { // 10件ずつにした際の端数 $modByTen = $totalCount % 10; // ページングした際の最終ページの件数 $modByDisplayNumber = $totalCount % $this->getDisplayNumber();

// 全てのページが埋まっているときや、もとから10の倍数のときは調整しない
if (0 !== $modByDisplayNumber && 0 !== $modByTen) {
$adjust = $modByDisplayNumber – $modByTen;

元記事を表示

XAMPP 8.2.0がリリースされましたん??

https://www.apachefriends.org/blog/new_xampp_20221229.html

こんにちはアパッチフレンズ!

PHP 8.2.0 用の Windows、Linux、および OS X 用の XAMPP の新しいバージョンをリリースしました。これらの新しいインストーラーはhttp://www.apachefriends.org/download.html からダウンロードできます。

これらのインストーラーには、次の主要コンポーネントが含まれています。

8.2.0-0

PHP 8.2.0
アパッチ 2.4.54
マリアDB 5.4.27
phpMyAdmin 5.2.0
OpenSSL 1.1.1p (Windows) および OpenSSL 1.1.1s (Linux および OS X)
PHP バージョン7.4.xは現在サポートが終了していますが、引き続きSourceForge XAMPP サイトから以前のバージョンをダウンロードできます。

OS X ネイティブ インストーラには、新しい OS X M1 および M2 (ARM アーキテク

元記事を表示

1292 Incorrect datetime value: ‘0000-00-00 00:00:00’のエラー

エラーが出て困ったのでメモです。
symfonyは自動でcreated_atやupdated_atが入らないようです。
idは入りましたが。

僕のローカルのmysqlが’0000-00-00 00:00:00’を許さない設定のようでこうなったようです。

実際のプロダクトだとmysqlの設定を変えるのがよさそうですが、今回はローカルだけの勉強用なので、簡単にこうしました。

“`
[error] Migration DoctrineMigrations\Version20xxxxxxxx failed during Execution. Error: “An exception occurred while executing a query: SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect datetime value: ‘0000-00-00 00:00:00’ for column ‘created_at’ at row 1”
“`

“`
An exception occurred while execu

元記事を表示

symfony5.4のコマンドまとめ

### 前提
Symfony 5.4

“`console
# ローカルサーバスタート
symfony server:start

# db作成
php bin/console doctrine:database:create;

# Entityクラス作成
symfony console make:entity XxxxXxxxx

# マイグレーションファイル作成
symfony console make:migration

# マイグレーションファイルからdb定義変更
symfony console doctrine:migrations:migrate

# マイグレーションファイルのどこまでやっているかを見れる
php bin/console doctrine:migrations:status

# コントローラ作成
symfony console make:controller XxxXxxxController
“`

元記事を表示

Mac,PHP環境構築(MAMP)

学校のPHPの授業でMacを使用している方が困っていたので投稿します。
学校ではXAMMPを使用していましたが、MAMPを使います。
https://www.mamp.info/en/downloads/
リンクからお使いの端末に合わせて、ダウンロードしてください。
MAMP PROは使わないので、自分は削除しています。
アプリを起動させたら、確認のためにファイルを作成名前は”check.php”中身は”
“`check.php

“`
としています。
![スクリーンショット 2022-12-30 3.19.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3085337/b9179559-d8c3-ba0a-608c-3dde7fcb7345.png)
このファイルをFinderのアプリケーションのMAMPのhtdocsの中に入れます。

さっきのファイルをブラウザで表示したいと思います。
アプリの『Preferences』でポート番号を確認。

元記事を表示

but it does not match your minimum-stability.

composer.jsonがないときは

(上に空行が必要)

“`bash
echo {} > composer.json
“`

“`bash
composer config minimum-stability dev
“`

https://stackoverflow.com/a/65847508/5602117

エラー内容

“`bash
composer require amphp/http-client:v5.x-dev
./composer.json has been updated
Running composer update amphp/http-client
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.

Proble

元記事を表示

Symfony4 複数DBの使用方法①

## はじめに
駆け出しエンジニア2年目のtakaと申します、symfonyの日本語ドキュメントが少なすぎて困ることが多かったので備忘録として記事にしました。
初めて書くので至らないところが多いですが同じような方の助けになれば幸いです。

# 目次

1. [対象者](#対象者)
1. [環境](#環境)
1. [経緯](#経緯)
1. [結論](#結論)
1. [コード一覧](#コード一覧)
1. [解説](#解説)
1. [おわりに](#おわりに)


## 対象者
この記事は下記のような人を対象にしています。

– 駆け出しエンジニア
– プログラミング初学者
– PHP技術者(symfony4)
– DQLについて知見、使用したことがある


## 環境
– PHP7
– symfony4


## 経緯
User側でログイン等の機能を有しているが、各々のDBにデータがあるためAdmin側で一括管理ができない状態だった、改善としてUser

元記事を表示

[LIFF] PHPとAjaxとMySQLを使った会員証アプリをつくる

社内でLIFFを使ったミニアプリを開発することに(なりそう)なので、ひとまず会員バーコードの表示機能を試作しました。以下備忘録。

# 全体図
![全体図](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1552742/16438d7b-79dc-be21-0ba9-b7387835db2c.jpeg)
こんな感じでLINEのuserIdと紐づけた会員データベースの会員NoをAjax経由で取ってきて
その会員Noを1次元バーコードに生成する。

# LIFFにてuserIdを取得する

– LINE Developersページへログインして、Messaging APIでログイン用チャネルを作成してLIFFのIDを発行(中略)

– 表示するページをエンドポイントに設定

– 表示するページにてLIFFのIDを指定すればgetProfile()にてuserIdが取得できる

“`html:index.html