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

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

useとrequire_once完全に理解した

# ある日の公園

![カバオ泣く.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/694053/0c8bec47-f274-282f-16ff-cd4a54eb536b.jpeg)

カバお「うわぁーーーーーん」

ウサこ「どうしたの、カバおくん」

カバお「PHPで新しくファイルを作って呼び出したいだけなのにうまくいかないんだァ」

ウサこ「それ、**use**と**require_once**についてちゃんと理解できてる?」

カバお「あ、あ当たり前じゃないか、馬鹿にしないでよ、ウサこちゃん」

*どうやらカバおくんは*
*useとrequire_onceについて正しくを理解していないようです。*

# useについて

ウサこ「カバおくんはuseについてどういう理解かしら?」

カバお「use宣言をすれば使いたいクラスが使えるようになるんだろォ」

ウサこ「その覚え方だと危険よ、正しくは**名前空間などをインポートしたり、エイリアスを作成することができる**イメージよ」
ウサこ

元記事を表示

int型指定の引数にstringを渡すとintになる PHP

# 実行例
“`php
function test(int $num) {
var_dump($num);
}

test(’99’);
// int(99)  実行結果
“`
string型の99をint型指定の関数に通すとint型の99に変換されます。

# 参考

PHP – 関数 – 引数の型指定

元記事を表示

【PHP】ファイルアップロードにおけるPermission設定について

**【PHP】ファイルアップロードにおけるpermission設定について**
*この記事ではCentOS Linux 7にインストールしたPHP 7.1.29を使っています。*
*Server version: Apache/2.4.6 (CentOS)*

# はじめに
画像ファイルをアップロードしようとしたところ、permissionエラーが発生。
原因とエラー解決までを纏めました。

# 自分の置かれた状況
画像アップロード
“`html:upload.html


“`

画像をimagesディレクトリに保存
“`PHP:img_save.php
$img_name = $_FILES[‘img’][‘name’]

元記事を表示

M1MacでLaravel&Docker環境構築を簡単にやる方法 2022

# はじめに

Dockerでの環境構築を覚えるために学習したことをまとめてみました。
今回は、Laravel Sailを使って環境構築を行いました。

# 目次

1. [事前準備](#Chapter1)
1. [Laravelアプリケーションの作成](#Chapter2)
1. [アプリケーションディレクトリに移動してLaravel Sailを起動](#Chapter3)
1. [phpMyAdmin追加(おまけ)](#Chapter4)
1. [参考文献](#reference)



# 事前準備
[Docker Desktop](https://www.docker.com/products/docker-desktop/)をインストールします。


# Laravelアプリケーションの作成
「example-app」という名前のディレクトリに新しいLaravelアプリケーションを

元記事を表示

Laravel Sailのtinkerで日本語が表示できない時の対応方法

Sailの環境を構築して、tinkerで日本語を表示すると以下のようになりました。
Dockerfileをカスタマイズすることで、日本語も表示できるようになったので、その時の手順を書いておきます。

“`
% sail tinker
Psy Shell v0.11.8 (PHP 8.1.10 — cli) by Justin Hileman
>>> print(‘あああ’)
<81><82><81><82><81><82><8F><8E>
=> 1
“`

# 環境
“`
% sail artisan -V
Laravel Framework 9.31.0

% sail version
Docker Compose version v2.10.2
“`

# 対応方法
docker-compose.ymlのservices.laravel.test.build.contextで指定したバージョンに対応するDockerfileをカスタマイズします。
ここでは、services.laravel.test.build.contextが`./do

元記事を表示

【PHP】 Range関数に第三引数あったんやね

## 第三引数step

指定した範囲の数字配列を作る時にrangeをよく使います。

第三引数で2づつ増える、3づつ減るなどを指定できるようでした。

“`php:昇順
$ranges = range(1,100,2);

array:50 [▼
0 => 1
1 => 3
2 => 5
3 => 7
4 => 9
5 => 11
6 => 13
7 => 15
8 => 17
9 => 19
10 => 21
11 => 23
12 => 25
……
]
“`

“`php:降順
$ranges = range(100,1,-3);

array:34 [▼
0 => 100
1 => 97
2 => 94
3 => 91
4 => 88
5 => 85
6 => 82
7 => 79
8 => 76
……
]
“`

> 第三引数、-数値でも+数値でも挙動が変わらなかった。
##

第三引数あったの知らなかった

元記事を表示

Laravel×AdminLTEでDataTableを使用する

こちらも軽くハマってしまったのでメモ。

以下を設定したところ、、
“`sample.blade.php
@section(‘js’)

@endsection
“`

このエラーが出ました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/127974/9a778169-3467-e269-aba5-ce5ba03595b1.png)

DataTableが使えない?と思っていたところ、以下の設定だけでした。

“`config/adminlte.php
‘plugins’ => [
‘Datatables’ => [
‘active’ => true, // ← これをfalse→trueにするだけ
‘files’ => [
“`

この辺を日本語化

元記事を表示

SQLSTATE[HY000]: General error: 1364 Field ‘YYYYY’ doesn’t have a default valueの対処法

原因
dedfault値がありませんと言っているため、defaultへの対処法として「結論」を実施するとうまくいく

結論
My sql”YYYYYY”のデータベース、デフォルト値を「null」に変更する

元記事を表示

DockerでLaravel環境を構築

# はじめに
業務でLaravelを使用するので環境構築してみました。

# 検証に使用した環境
ホストOS:MacOS Monterey 12.6
Docker:20.10.14
CentOS:7
PHP:7.4.30
Laravel:7.30.6

# DockerでCentOSを用意する
[こちら](https://qiita.com/kaburankattara/items/22e63d3861fc2f4f021e)のページを参考にCentOSを用意します。
httpdで構築したLaravelにアクセスし、ソースはホストと共有したいです。
そのため、ports、volumesに設定を加えてコンテナを立ち上げます。

最終的には以下の通り

“`yaml
version: “3”
services:
centos:
build: ./docker
ports:
– 8081:80
privileged: true
volumes:
– ./src:/var/www/html
– /sys/fs/cgroup

元記事を表示

Python,Ruby,PHP,Java,JavaScript,Perlのデータベースの比較

Qiita > プログラミング言語の比較

Python,Ruby,PHP,Java,JavaScript,Perlのデータベースの比較

# Python

https://qiita.com/ku_a_i/items/9c68e8aed3c2c066bc60

# Ruby

https://qiita.com/mzmz__02/items/0f73224dd77fe7d24c1b

# PHP

https://qiita.com/mpyw/items/b00b72c5c95aac573b71

# Java

https://qiita.com/zaburo/items/b8c2ab8db7b972d614e7

# JavaScript

https://qiita.com/mzmz__02/items/6e85c1210824d55f64f2

# Perl

https://perlzemi.com/blog/2017013014

元記事を表示

【備忘録】composer installにてエラー

# composer installにてエラー
laravelプロジェクトで久しぶりにcomposer installをしたらエラーが出た
“`
% composer install
PHP Deprecated: Return type of Symfony\Component\Console\Helper\HelperSet::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in phar:///usr/local/bin/composer/vendor/symfony/console/Helper/HelperSet.php on line 112

Deprecated: Return type of Symfony\Component\Console\H

元記事を表示

[npm]エラー”npm WARN config global `–global`, `–local` are deprecated. Use `–location=global` instead”の対応

# エラー
laravelのLaravel Breezeの環境構築過程で`php artisan breeze:install`を実行していると、
下記エラーによって正常に処理が実行されなかった
“`
npm WARN config global `–global`, `–local` are deprecated. Use `–location=global` instead
“`
試しに、`npm -g update`をしたところ、同様のエラーが2回繰り返して出てきた。
※補足に全文を記載

### エラーのDeepL日本語訳
npm WARN config global `–global`, `–local` は非推奨です。代わりに `–location=global` を使ってください。

# 環境
– Windows10
– npm version:8.11.0

# 対応方針と対応結果概要
同じエラーに対しての解決法を発見したので、以後そのやり方で実施。
https://stackoverflow.com/questions/72401421/message

元記事を表示

未経験からエンジニアになって爆速で技術を習得するナレッジ

## はじめに
皆さんこんにちは。
今回は、約半年前にアップした、【実務未経験者がバックエンドエンジニアとして基礎を固めるためのナレッジ】に次いで、
実務未経験者がバックエンドエンジニアとしていかに早く技術を身につけていくかのナレッジについて少し書いていこうと思います。

早いもので、
現在の会社に入社して半年以上が経過しました。

ようやくではありますが、研修を経て、社内案件に少しずつではありますが参画させていただいているような状況です。

実務未経験で、勉強してきた言語も今と違う。
(もともとRubyを独学で学んでおり、現在はPHPを書いています。

そもそも、WEBサービスをつくることにウェイトを置きすぎていたゆえ、
基礎をほぼほぼ理解しないで独学でサイト作成をしていました。

なので基礎力はほぼ0。

あるのはやる気だけ、そんな感じでスタートしましたね。

詳しくは、過去記事を是非御覧ください。
[未経験からエンジニアになりました【実務未経験者がバックエンドエンジニアとして基礎を固めるためのナレッジ】](https://qiita.com/yastinbieber/items/

元記事を表示

正規表現のメモ PHP

## 正規表現とは
文字の集合を一つの文字列で表現する方法です。

簡単に言うと抜き出したい文字列だけとってくるということです。

例:電話番号は000-0000-0000におかけください。
みたいな文章があったとして 電話番号は000-0000-0000におかけください。
赤文字のみデータとして取得したい場合などに正規表現を使って取得します。

## 具体例
正規表現は様々なパターンがあるのでいくつかのみパターンを表示します。
“`
\d{2,4}-\d{2,4}-\d{4} 電話番号取得の正規表現
[0-9]     半角の数字を検索
[ぁ-ん]    全角ひらがなを検索
[ァ-ヶ]    全角カタカナを検索
([^”]*) 1区切り全て表記
([\s\S(.*)]*) 全て表記
“`

## 利用ツール
実際に取得できる文字を確認できるツールを以下に貼っておきます。
※正規表現チェッカーは他にもたくさんあるので使いやすいものを使えばよい
http://okumocchi.jp/php/re.php

## まとめ
正規表現は

元記事を表示

PHPカンファレンス2022参加した!

# オフライン参加しました

各社システムで使用されているPHP周辺の話を聞くのはとても新鮮で、1日目の一部のみの参加ではありましたが良い経験でした。
開催有難うございます。鉄は熱いうちに打て、という事で一部箇条書きでの投稿お許し下さい。見にくいかもです…スミマセン。

# ****17年続くWebサービスを改善する 〜新卒2年目からみるカラーミーショップ〜****

https://fortee.jp/phpcon-2022/proposal/6669e288-563e-49c5-be45-3871c730b6ab
– 一つ一つ丁寧に説明頂けた
– そのおかげで自分の中に落とし込めました
– とても聞きやすい発表でした

## Webアプリケーションレイヤにおける改善の取り組み
**[@yammerjp やんまーさん](https://twitter.com/yammerjp)**

– 「漸進的に」がキーワード、まさに「漸進的に」取り組まれている様子に全私が(完璧やん…。)となった
– 完璧な裏側には色んな人のアイデアや失敗もあったのかしら、なんて想像を膨らませた
– 是非機会があ

元記事を表示

PDOException(code: 0)でつまづいた話

# PDOException(code: 0)

PHPでサーバーを立て、接続したところInternalServerが発生。
ログを確認するとPDOException(code: 0)とのエラーログ。

どうやら、MySQLとの接続がうまくいってないらしい。

## 環境

– Ubuntu18.04
– php 8.0.23

## 試したこと

### 設定の確認

.envファイルの確認。DB設定が間違っていないか確認。

### Install package

“`shell
sudo apt-get install php-mysql
“`

### PHP driverの確認
以下のコードを実行して単純にドライバがないのかの切り分け。

“`php
getMessage(

元記事を表示

PHP M1 Mac 環境構築 Mamp Composer

# M1 MacでPHP始めたい人向け
M1 Macだと参考通りいかなかったので、これから始めたい人のためにまとめてみました。
前提条件としてHome brew, VScode導入してあると想定して説明します。

Home brewの参考 M1 mac用
https://chigusa-web.com/blog/homebrew/

VScodeの参考
https://qiita.com/watamura/items/51c70fbb848e5f956fd6

# この記事のゴール
PHPを使ってプログラミングできる状態までにする事

# 1 Mampを導入しよう!
ここのurlからfree downloadをして下さい。
https://www.mamp.info/en/windows/

![スクリーンショット 2022-09-27 16.34.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2708236/ea275011-b4bf-d6e3-c7dd-e97b08a708aa.png)

元記事を表示

初学者でもカンファレンスの現地参加は怖くないよというお話【phpcon2022】

今年になって、技術イベントがようやく現地開催されるようになってきました。
コロナ禍でエンジニアになった自分が、初めてカンファレンスにオフライン参加したところとてもよかったので、
「新人さんもぜひ参加してほしい!」という気持ちで書いたポエムです。

## 筆者について
SE3年目ですが上流に関わることが多く、技術に関してはジュニアかそのちょっと上くらいです。
PHPに関しては、業務でLaravelを利用しています。(逆にノーマルのPHPはほとんど書いた経験が無い)

## そもそもPHP Conference Japan とは
PHPカンファレンスは1999年から実施されている、PHP関連の技術をテーマを主とした技術者イベントです。
公式サイトに以下の記載があるように、PHPユーザーの方々が自分の発表したいと思ったテーマで発表に応募してらっしゃり、
実際に提案が通った方々の発表を聞くことができる場になっています。
今年は9/24, 25の土日2日間の開催でした。
[Youtubeにアーカイブ](https://www.youtube.com/c/PHPConferenceJapan/p

元記事を表示

Dockerで構築したpostgresDBにlaravelでmigration

# 目標
Dockerで構築したpostgresDBにlaravelでmigrationする

## 前提
– Dockerの環境構築は省略
– [postgresDBの環境構築](https://qiita.com/Yatsushi009/items/3d0932b89c51b8b05537):省略

## 環境
– Windows10 wsl2 Ubuntu
– Docker version 20.10.17, build 100c701
– postgresql14
– adminer 4.8.1
– laravel9
– Composer version 2.3.7
– PHP 8.0.12 (cli) (built: Oct 19 2021 11:21:05) ( ZTS Visual C++ 2019 x64 )
※xampを用いてインストール

# 作業手順
1. laravelのプロジェクトを作成
“`
composer create-project laravel/laravel:^9 [project_name]
“`
1. .envファ

元記事を表示

【PHP】PHPで配列操作を極めたい

# コード
“`PHP
[1,2,3],’b’=>[4,5]] as $key => $array){
echo $key,’=’;
foreach($array as $n){
echo $n;
}
echo PHP_EOL;
}
“`

# 結果
“`javascript
a=123
b=45
“`

元記事を表示

OTHERカテゴリの最新記事