PHP関連のことを調べてみた2023年01月21日

PHP関連のことを調べてみた2023年01月21日

【PHP】$_POSRで送信するためのチートシート

# $_POSTで送信するためには

## 発端
* $_POSTでデータが欲しいがやり方が曖昧だったためまとめる。
【結論】formに“`method=”POST”“`、“`buttonのtype=”submit”“`にしてれば飛ぶ。

## 方法
### form内で色々な情報を集めてまとめて送信する場合
“`php:index.php

// inputBox

// password

// adress

// selectBox

メールアドレス(確認用)
“`

以上

元記事を表示

PHPを基本からまとめてみた【環境構築】

## PHPとは

サーバーサイドのプログラミング言語

## WordPress

ブログを作成するシステム

## MAMPとは
PC上にローカル環境サーバ環境一式をインストールできるツール

## 環境構築

ローカル環境構築 ⇨ PCの中にサーバー

公式サイト:[MAMP](https://www.mamp.info/en/downloads/)

“`
//terminal

cd /Applications/MAMP/htdocs/
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
composer -V

//プロジェクト作成
composer create-project laravel/laravel <プロジェクト名>
“`

“`
brew tap shivammathur/php
brew install shivammathur/php/php@7.4
brew link php@7.4
“`

## 参

元記事を表示

負荷テストする時大量データ作成プロシージャ

DROP PROCEDURE `proc_test01`
/
CREATE DEFINER=`homestead`@`%` PROCEDURE `proc_test01`(IN input int(1))
BEGIN
SET @start_idx = 0;
SET @customers_info_id = 100000;
SET @point_card = 7130010000 ;
loop1: LOOP
SET @start_idx = @start_idx + 1;
SET @customers_info_id = @customers_info_id + 1;
SET @point_card = @point_card + 1;
IF @start_idx > input THEN LEAVE loop1;
END IF;

# カード会員情報の登録
insert into DB.table1(card_info_id,customers_info_id,asp_card_main_id,asp_card_

元記事を表示

Laravel9でつまずいたところ

## Laravelスタートの見習いエンジニア
自分が学習していく中でつまずいたところをメモします。

まずはMVCの動き方とかを知るために職場の方から教えていただいたこちらのサイトをもとにTODOアプリを作成することにしました。
https://www.hypertextcandy.com/laravel-tutorial-introduction

### 環境
Laravel9+Docker+mysql+nginx
PHP 8.1.14
editor: PHPStorm

### 今日つまずいたところ
Routingはあっているはずなのに
“`
target class [クラス名] does not exist.
“`
のエラーが表示される・・・

### 解決
どうやらLaravel8とLaravel9では動作が違うという
(そりゃそうだよな・・・)

### 参考記事
https://biz.addisteria.com/laravel_route_error/
とても助かりました。
先駆者の方でこうしてまとめてくださるのは本当にうれしいこと
ありがとうございます。

元記事を表示

[WIP] PHP でデータベースに接続する PDO

:::note note
初学者の独り言メモです
PDO について DB への接続・切断、SQL を発行する部分を分けたり、例外処理、プレペアードステートメント、DAO などぼんやり理解したものの本や記事によって異なる関数が使われているのを多く見かけました。プレースホルダの書き方の違いや関数の記述の違い、関数をどう使い分けるのかを知ろうというのが目的です。書き起こしながら理解を深めようと随時加筆・修正していきます。ここで使用するデータベースは MySQL です。 JDBC ドライバ接続についても理解しないと。
:::

データベースに接続するための抽象化レイヤーが PHP に用意されています。「PHP Data Objects(PDO)」が用意されています。今回「**PDO クラス**」を使います。
参考:[PDO:PHP – Manual](https://www.php.net/manual/ja/book.pdo.php)

:::note warn
抽象レイヤーとは何かは後回し
:::

**PDO クラス** のインスタンスを生成してデータベースに接続しますが、データベース接

元記事を表示

【doctrine】Specを使用してデフォルトで条件の入ったdoctrineのオブジェクトを出力したい

## 環境
php7
Symfony3

## そもそもSpecとはなんぞや
[Doctrine-Specification/0-usage.md at 2.x · Happyr/Doctrine-Specification](https://github.com/Happyr/Doctrine-Specification/blob/2.x/docs/0-usage.md)

doctrineのクエリよりも簡素に書けるよ―というライブラリらしい。
~~全然慣れない~~

## 首題について

“`php
$spec = Spec::andX(
Spec::isNotNull(‘hoge’),
);
“`

これだけで済んだ、、、
まあ慣れなんですかね、、、
ジョインして間もないので解決しても腑に落ちないところはある。

元記事を表示

WSL2でのLaravel開発の流れ(自分用メモ)

自分用の備忘録としてLaravel導入の流れをまとめます。
## 目次
* 環境
* WSLの準備
* Docker Desktopのインストール
* Laravelのプロジェクト作成

## 環境
* Ubuntu 20.04
* WSL2
* PHP 7.4.3
* Laravel9

## WSLの準備
1. Powershellを管理者権限で実行する。
2. 下記のコマンドを実行する。
“`shell
wsl –install
“`
3. PCを再起動する。
4. 再起動すると ubuntu のターミナルが自動的に立ち上がるのでユーザ名とパスワードを設定する。

## Docker Desktopのインストール
1. 下記のURLにアクセスし、ダウンロード -> インストールする。
https://www.docker.com/products/docker-desktop/
2. 完了したら画面の指示にしたがって windows からログアウト → ログインする(再起動でも OK)。

### Dockerの動作確認
1. Docker

元記事を表示

【初心者向け】PHP の コンストラクタ について

こんにちは!
システム開発部の松木です。
今回は オブジェクト指向 の一つ、コンストラクタについて深く見ていこうと思います。

コンストラクタとは?

コンストラクタは、クラスをインスタンス化(オブジェクト化)した時に、必ず実行されるメソッドです。通常のメソッドはクラスをインスタンス化した後に、アロー演算子を用いて任意のタイミングで呼び出すことができるが、コンストラクタはインスタンス化するタイミングで、自動的に呼び出されるため呼び出す工程がありません。

▼ ブログ記事の詳細は コチラ から ▼

https://beyondjapan.com/blog/2023/01/php-constructor

***

■ 株式会社ビヨンド

・コーポレートサイト:https://beyondjapan.com​​​
・採用サイト:https://recruit.beyondjapan.com
・Youtube(びよまるチャンネル):https://www.youtube.com/@beyomaruch
・Twitter:https://twit

元記事を表示

値の真偽の判定とfilter_var関数

`$_GET`に格納された値など、PHPには文字列でしか取得できない情報が存在します。
その値を真偽値として扱いたいときには`filter_var`関数が個人的に便利だったので、その他真偽値の判定にまつわる関数とともに出力結果をまとめました。

https://www.php.net/manual/ja/function.filter-var.php

例:
“`sample.php
$model = getData($_POST[“id”]);

$model->isPublished = filter_var($_POST(“isPublished”), FILTER_VALIDATE_BOOLEAN);
$model->save();
“`

## 早見表

| 値 | if($var) | isset($var) | empty($var) | is_null($var) | filter_var($val, FILTER_VALIDATE_BOOLEAN) |
|:-|:-:|:-:|:-:|:-:|:-:|
| true | **true** | **true** |

元記事を表示

PHPUnitのカバレッジバッジを作成する

# バッジを表示

https://gist.github.com/hellowork-mhlw/0a5d2e3a3121aefaf01a48b2b53c9ef3

“`markdown
![](https://coverage.deno.dev/hoge.svg)
“`

# バッジを更新
最後の数字を変更することで更新できます。`/hoge.svg`などのパスは好きなのいれてください
https://coverage.deno.dev/hoge.svg?97

# CI/CDに組み込む場合

“`bash
vendor/bin/phpunit –coverage-html reports
# for Laravel
# php artisan test –coverage-html reports

percentage=$(printf %.0f $(grep -Pom1 ‘(?<=aria-valuenow=").*?(?=")' reports/index.html)) curl https://coverage.deno.dev/hoge.svg?$percent

元記事を表示

$app->loadEnvironmentFrom(‘.env.example’);

https://github.com/laravel/framework/blob/0a18e9271c328fd86879a74487c4744cc2a6672d/src/Illuminate/Foundation/Application.php#L542

loadEnvironmentFromでenvをロードしてるわけではない。`.env`を上書きしてるだけ。`.env`とloadEnvironmentFrom()の引数の`.env`が両方ロードされることもない

“`bash
/**
* The environment file to load during bootstrapping.
*
* @var string
*/
protected $environmentFile = ‘.env’;

public function loadEnvironmentFrom($file)
{
$this->environmentFile = $file;

return $th

元記事を表示

エンジニアインターン4日目

今日はlpのテンプレート作成の続きを行った。テスト環境でデータベースから特定の情報を読み込み、その値を表示するという作業だった。そこで、データベースにもwordpressにもない値だった場合、データベースにはないが、wordpressにある場合、両方にある場合この3つの条件を設けてそれぞれに適切な値を入れる作業をした。まず、functionを作り、issetを使って値があるかを調べた。引数が多くなり、他の場所に引用することがめんどうになってしまった。そこで、先輩エンジニアからjsonを使ったら便利と言われた。jsonで配列をつくり、functionの引数にした。jsonを使えば容量も軽いし、別の場所に引用するのも簡単にできるとのことだった。自分はjsonを詳しく知らなかった。先輩エンジニアはweb開発の時はjsonをとても多く使うとのことだった。直接コードも見せていただき利便性を確かめることができた。今日隣で業務委託のエンジニアさんとのミーティングが聞こえてきた。社員のエンジニアさんは業務委託のエンジニアに難しそうなことを要求していた。レベルの高い話で、いずれかは自分もそのような話し合

元記事を表示

【PHPUnit】assertSameとassertEqualsを正しく使い分ける

## はじめに
今回の記事はassertSameとassertEqualsの使い分けについてです。何気なくassertSameを使用していて、意図しないエラーに遭遇したので、忘れないよう記事にします

## 状況と発生したエラー内容
今回のエラーは下記テストを実行した際に出力されました。ユーザーリポジトリのfindById(ユーザーIDを指定すると対象のユーザーを取得できるメソッド)のテストです。存在するユーザーIDを渡すとユーザーを1件取得できることを確認しています

また、`assertUser`メソッドでは、オブジェクトの属性値が期待するオブジェクトと、実際のオブジェクトで等しいかどうかを評価しています
“`php
public function test_存在するユーザーIDを渡すとユーザーを1件取得できること(): void
{
// given
$expectedUser = $this->user;

// when
$actualUser = $this->userRepository->

元記事を表示

プロキシ環境下でAWS SDK for PHPを利用してファイルのアップロード・ダウンロードを行いたい

クライアント作成時に `’http’ => [‘proxy’ => ‘http://192.168.16.1:10’]` を追加することで、プロキシ環境下でAWS SDK for PHPを利用したS3へのアクセスが可能となります。

“`php
require ‘vendor/autoload.php’;

use Aws\S3\S3Client;
use Aws\Exception\AwsException;

$s3 = new \Aws\S3\S3Client([
‘resion’ => ‘ap-northeast-1’,
‘version’ => ‘latest’,
‘profile’ => ‘default’,
‘http’ => [‘proxy’ => ‘http://192.168.16.1:10’]
]);

“`

# 参考

↓の `proxy` を参照

https://docs.aws.amazon.com/ja_jp/sdk-for-php/v3/developer-guide/getting-started_basic-

元記事を表示

PHPの配列に関して簡単にまとめる

## PHPの配列とは
– 配列とは、変数に背番号のようなものを付けて拡張し、複数のデータを扱えるようにしたもの
– 配列はデータを「キー/値」のペアにしている
– 「キー/値」のペアになっているデータを配列の要素と言う
– 配列には順序があり要素が追加された順に並んでいる
– 配列にはすべてのデータ型の値を格納することが出来る

### 配列の基本的な書き方
基本形(リテラル)では1つの変数を定義して、その変数に対して値を代入する。
PHPの配列(Array)の場合は、わかりやすく言うとこの変数の値が複数格納できるものになる。

“`
$fruits = array(‘apple’, ‘orange’, ‘grape’);
“`
もしくは下記のような書き方もできる。
最近だとこちらの方が一般的か。
“`
$fruits = [‘apple’, ‘orange’, ‘grape’];
“`

### 配列の出力
出力する際は以下のように記述をします。
“`
$fruits = [‘apple’, ‘orange’, ‘grape’];

// var_dump の場合
var

元記事を表示

AWS SDK for PHPでS3からgzipファイルをそのまま(展開されることなく)取得したい

# はじめに

PHPでaws-sdkを使用してS3からファイルをダウンロードする際に、gzipファイルが展開された状態で出力される場合があります。
特に、gzipのままファイルが欲しい場合に困ってしまいます。

# 対応
クライアント作成時に `’http’ => [‘decode_content’ => false]` を追加することで、gzipファイルが展開されずに(gzipファイルのまま)取得することができます。

“`php
require ‘vendor/autoload.php’;

use Aws\S3\S3Client;
use Aws\Exception\AwsException;

$s3 = new \Aws\S3\S3Client([
‘resion’ => ‘ap-northeast-1’,
‘version’ => ‘latest’,
‘profile’ => ‘default’,
‘http’ => [‘decode_content’ => false]
]);

“`

# 参考

↓の `decode_conte

元記事を表示

OTHERカテゴリの最新記事