PHP関連のことを調べてみた2021年11月07日

PHP関連のことを調べてみた2021年11月07日

Laravelのバージョン6系をインストールする

インストール方法は下記URLに「Via Laravel Installer」と「Via Composer Create-Project」の2種類が記載されている。

https://laravel.com/docs/6.x#installing-laravel

今回は「Via Composer Create-Project」を採用。作成するプロジェクト名(ディレクトリ)を「sample_laravel_src」とした場合のコマンド実行例。

“`
% composer create-project –prefer-dist laravel/laravel sample_laravel_src “6.*”
“`

以下、実行ログ。

“`
% composer create-project –prefer-dist laravel/laravel sample_laravel_src “6.*”
Creating a “laravel/laravel” project at “./sample_laravel_src”
Installing laravel/laravel

元記事を表示

今までの流れ

今までの流れ(アプリ開発)
1バックエンドの導入(支援者あり)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2231259/2d935ccd-a74a-16c3-8b7e-e68182576c07.png)

スマホでweb開発できるようなバックエンドシステムを借りてプログラムを勉強しはじめました。

2html css javascriptの簡単な入力
過去投稿

のような形で勉強をつづけました。

3必要な情報の検索とコードの追加
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2231259/6d18bea3-7698-f5e0-eb3a-cc135e4

元記事を表示

M5Stackで部屋の震度を時系列に計測した

なんだか部屋が揺れてる気がする…
![jishin_kinishinai_people.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/16457/eb6eefaa-e0bd-20dd-1f9f-873c51b4ba64.png)

ということで、まずはスマホを置いて加速度センサーで揺れ具合を確認してみました。
その結果、データ上でも反応があり、気のせいではないことが確定。
ただ、揺れが気になる時間と気にならない時間もありそうな気配でした。
時間変化の状況を確認したいので長期的に計測したいと考えたけど、スマホを放置して常にセンシングすると日常が困る。
というわけで、代わりに持ってたM5Stackを使うことにしました。

#M5Stackの設置
空気清浄機の上にこんな風に設置しました。
![m5stack_setting.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/16457/22c5a9a0-44bc-f132-0d

元記事を表示

PHPUnitでDDD実装パターンをテストしてみた

# はじめに

CakePHP4でDDDを意識して作成したAPIについて、テストコードを作成しました
こちらの記事の続きになります

「ドメイン駆動設計 サンプルコード&FAQ | 松岡幸一郎」の本を大変参考にさせていただきました

また、この記事で紹介するソースコードは、 GitHub にコミットしてあります

# バージョン

– PHP
– 8.0.10
– CakePHP
– 4.3.0
– PHPUnit
– 9.5.10

# テストコード

代表して、「ユーザーを登録する」ユースケースの処理の流れのテストコードを記載します

## プレゼンテーション層

“`php:tests/TestCase/Controller/Api/V1/UsersControl

元記事を表示

EC2データベースマイグレーションできない

##やろうとしたこと
ec2上でphp artisan migrateを実行してデータベースマイグレーションしようとを思ったらハマってしまったのでメモしておきます。
##エラー内容
“`
$ php artisan migrate

**************************************
* Application In Production! *
**************************************

Do you really wish to run this command? (yes/no) [no]:
> yes

In Connection.php line 669:

SQLSTATE[HY000] [2002] Connection timed out (SQL: select * f

元記事を表示

複数のテキストフォームの内容をファイルに保存する

##概要
1つのフォームタグ内にテキストフォームが複数ある場合、PHPに渡してテキストファイルに保存する。

##html
ファイル名はなんでもいい。

“`






“`
##PHP
ファイル名data.phpで保存する。

“`

元記事を表示

CentOS7の初期状態から nginx で php python perl ruby を動かすまで

# はじめに
https://qiita.com/bashaway/items/16c2aba74a8328ed9618

と同じことをCentOS7でやっただけ。
作業履歴の目的なので、解説は少なめ。

# 作業内容

## 事前作業
SELinuxは無効化にしておく。

upstreamとかproxyとかでアクセスさせようとしてPermissionDeniedが出て、ソケットのパーミッションやらなんやら調べてたけど、面倒になってSELinuxを無効化したら動いたので、そうした。
いろいろ検証したり調査したりするときにはやっぱりSELinuxは外さないと時間がかかる。。。

## パッケージインストール

各スクリプトと、CGIとして動作させるためのパッケージをインストールします。

“`:いろいろインストール
yum install -y epel-release
yum update -y
yum install -y nginx php php-fpm python3 ruby fcgi spawn-fcgi fcgiwrap perl perl-CGI

“`

py

元記事を表示

CakePHPの開発環境構築

本記事は[こちら](https://zenn.dev/isana/articles/cakephp-docker-enviroment)からの転載です。
当時、内定を頂いた転職先の業務のキャッチアップのために学習していた内容を書いたという背景があったのでした。

## モチベーション
CakePHPのキャッチアップの為に簡単に環境構築を行いましたのでその記録です。

## 環境
– ホストOS: ubuntu20.04(wsl)
– PHP: 7.3
– CakePHP: 4.*

アプリとDBだけの簡単な構成でdocker-compose.ymlを作成します。
ハマりポイントとしてはmysqlのバージョンです。
はじめは8.0で構築したのですが以下のエラーでmyappとdbの疎通が出来ませんでした。
> Error: [InvalidArgumentException] There was a problem connecting to the database: SQLSTATE[HY000] [2054] The server requested authentication m

元記事を表示

【Laravel】ラジオボタンの実装と値の保持

#はじめに
値がちゃんと保持されるようにラジオボタンを実装してみます。

#コード

“`php:create.blade.php

元記事を表示

PHPUnitでControllerのプロパティにモックを持たせる方法

# はじめに

CakePHP の Controller クラスの initialize メソッドで、プロパティにインスタンスを持たせており、テスト実行時にはモックを持たせたかったのですが、うまくいかず詰まりました

– 問題
1. Controller のテストを実行するとモックではなく実処理が走る問題
2. Controller のテストを実行すると private プロパティが上書きできない問題
– `error: [Error] Cannot access private property Controller::$property in Controller.php on line xxx`

# 結論

:::note info
EventManager::instance()->on() で Controller->initialize() を検知して controller オブジェクトを取得し、  
private プロパティを Reflection クラスで無理やり上書き可能にしてモックを差し込めば OK
:::

“`php:tes

元記事を表示

Unable to load FFProbe

“`
apt-get update && \
apt-get install -y \
ffmpeg
“`

元記事を表示

【超初心者編】PHP7×MySQL、PDOを使用してDB(データベース)に接続する方法

#データベースとの接続は、初心者にとって「最初の壁」#
こんにちは、自分はPHPを勉強して2ヶ月目の初心者です。
今回は自分用のメモと記憶整理としてデーターベース(以降:DB)との接続方法を超簡単に説明します。

環境は以下の通り
・MAMP6.2
・PHP7.4.9
・MySQL 5.7.30

#####【注意】初心者の解説なので、専門的に学習したい人は他の学習用のサイト・ページなどを参考にしてください!#####

#MySQLとPDOについて#
###MySQLはオープンソースのDB(データベース)管理システムです。###
(オープンソースとは商用、非商用を問わず配布されてるもの)
・無償で利用できる
・大容量のデーターを高速で動作させられる
・幅広いOSに対応している(Windows,mac,Linuxなど)

上記は特徴の一部に過ぎません。
優秀なシステムで実際に世界中の企業でも使用されています。

###PDOとは?###
PDO(PHP Data Objects)とは、
PHPからDBへアクセスする機能を持った拡張モジュ

元記事を表示

apacheのエラーログがstderrには出せずstdoutには出せた話

# 現象

Dockerで動かしているapache(※)のエラーログをDocker Logsに出したかったので、以下のように標準エラー出力するように設定したがDocker Logsに出力されない。

“`
ErrorLog /dev/stderr
“`

一方、標準出力を指定するとDocker Logsに出力される。

“`
ErrorLog /dev/stdout
“`

※httpdイメージは使っておらず、CentOSイメージの中でインストールしたapache

# 調査結果

httpdプロセスの `fd/2` がttyではなくログファイルを向いていた。

“`
# ls -l /proc/1/fd
total 0
lrwx—— 1 root root 64 Nov 3 14:53 0 -> /dev/pts/0
lrwx—— 1 root root 64 Nov 3 14:53 1 -> /dev/pts/0
l-wx—— 1 root root 64 Nov 3 14:53 2 -> /var/log/httpd/error_log

元記事を表示

事前に採番したそのID使われてないかも!?(CakePHP)

# はじめに

データ新規作成時、あらかじめ ID を採番しておいて、オブジェクトを持ちまわしていました
しかし、そのオブジェクトの保存処理後、採番していた ID とは違う ID で保存されていたのです

# 結論

:::note info
patchEntity() の返り値のエンティティの id に値を設定すれば OK
:::

“`php:CakePHPUserRepository.php
// ユーザーを保存する
public function save(User $user): UserId
{
$model = TableRegistry::getTableLocator()->get(‘Users’);
$saveData = [
‘Users’ => [
// ここで ID を設定しても保存処理に採用されない
// ‘id’ => $user->getId()->getValue(),
‘username’ => $user->getUsername()->g

元記事を表示

認可 gate メソッドの違いについて

#gate

(名前の通り門のイメージ)
→roleに応じてアクセス制御を行う

#使われるメソッド
authorize 

403のAuthorizationExceptionがthrow

allows⇄denies

allows

→AuthorizationExceptionがthrowされないので、if分により分岐処理を行うことができる

forUser
アクセス制限を行うために他のユーザのアクセス権を利用する
forUserメソッドに他のユーザを指定して、指定したユーザの情報で削除のアクセス制限を行う(?)

元記事を表示

【Laravel・PHP】動画ファイルがアップロードできない時に対処 php.iniの設定

# はじめに
Laravelで動画アップロード機能を実装したがどうしても成功しなかった。
実は**php.ini**というPHPの設定を変更しないとうまく動かないことがわかったのでそれに関する情報です。

# 環境
PHP 7.4.21
Laravel 8.39.0

# php.ini
このファイルの場所ですが、今回の環境はEC2(Linux系)なので
**/etc/php.ini**にあります。

ファイルの場所はOSなどで違う場合ありますので`phpinfo()`でみれます。

ここの記述を編集します。

# 設定内容
今回は**アップロードする容量の制限にひっかかっている**ことがわかったのでその上限を変えます。
変更加えたのは以下の内容です。

“`
;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;

(中略)

memory_limit = 1024M // デフォルトは128M

;;;;;;;;;;;;;;;;;
; Data Handling ;
;;;;;;;;;;;;;;;;;

(中略)

元記事を表示

dockerを使ってLaravel6系の環境構築するとき、つまづいたディレクトリ階層について。【初投稿】

【Dockerを使って環境構築しようとしたきっかけ】
チーム開発する上でDockerを使う機会があると聞いたので、就活のポートフォリオでLaravelの環境構築をDockerを使ってみたいから。

(参考記事)
https://www.engilaboo.com/how-to-use-docker-for-laravel/

今回、以下の環境を構築する。
Laravel 6.0
PHP 7.3
Nginx
MySQL 5.7

まずディレクトリの作成。(今回はdocumentの下でtestディレクトリを作成)
$ cd document
$ mkdir test
$ cd test

testディレクトリに以下のファイルを作成。
php.ini
default.conf
Dockerfile
docker-compose.yml

4つのファイルの記述を記事を参考にコピペして以下のcomposeコマンドを実行。
$ docker-compose up -d

ここでエラーが発生。
エラー内容:docker-compose.ymlのBildで設定したパスが見つからない。
![スクリーンシ

元記事を表示

メモ PHP SQL

query($show);
foreach($stmt as $result) {
echo $result->name1 . ‘:’ . $result->name2. ‘:’ . $result->name3 . ‘:’ . $result->name3;
echo ‘
‘;
}

元記事を表示

【PHP】PHP_EOLとは?使用方法も解説!

# PHP_EOLとは?

PHP_EOLは、PHPで定義済みの定数です。
PHP_EOLは改行を表し、WindowsやLinux等のOSによって自動で改行コードを切り替えてくれます。

| OS | 改行コード | 改行文字 |
| ————– | ———- | ——– |
| Windows | CRLF | \r\n |
| Linux/UNIX系 | LF | \n |

# 使用方法
“`php

・出力結果
おはようございます。
今日はいい天気ですね。
“`

元記事を表示

OTHERカテゴリの最新記事