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

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

PHPのデータ型一覧

## PHPのデータ型とは

データ型とはPHPの値の性質を表したものです。
例えば、値が「**’**こんにちは**’**」や「**’**おはよう**’**」等のような文字であればデータ型は文字列(string)となり、「-1」や「100」、「3.14」等の数値であればデータ型は整数型(integer)や浮動小数点数型(float, double)となります。

## PHPの型付け

プログラムにおいてデータ型は非常に重要です。
データ型を正しく理解することで、その値を正しく処理するコードを書けます。
PHPは型付けの弱い言語で、データ型を宣言しなくてもPHPがデータ型を自動判別してくれます。
そのため、PHPではデータ型を宣言せずとも自動的にデータ型の変換を行います。
このようなデータ型の変換のことをジャグリングと言います。PHPがデータ型を自動判別して処理してくれますが、その反面意図しないデータ型として認識される場合があるので注意が必要です。

## PHPの8つのデータ型

| データ型 | 型の種類 | データ例

元記事を表示

Laravelのルーティングでアノテーションを使う方法

# この記事は?
Laravelのルーティングはweb.phpを使うのが一般的ですが、[LaravelCollective/annotations](https://github.com/laravelcollective/annotations)を使うことでflaskやSpring Bootのようにメソッドにアノテーションをつけてルーティングさせることが可能なので試してみました。
この記事はアノテーションでのルーティングを行うことのメリットとその方法についてまとめます。

# アノテーションでルーティングするメリット
web.phpを使用したルーティングは1ファイルでルーティングを管理することから一覧性があって見やすい反面、複数人で開発を行おうとしたときにweb.phpがコンフリクトする確率が高くなってしまいます。
アノテーションを使用してルーティングを記載するファイルが分かれることで、コンフリクトが減らすことができます。

# アノテーションでルーティングする方法
## 前提
この記事ではLaravelでのプロジェクト作成ができることと何らかの方法でデプロイする方法を持っていること

元記事を表示

laravel5.8 注文履歴

laravel で注文履歴を作成する機会があったのでアウトプットしていこうと思います。

#仕様
①商品検索画面で商品を選択し、カートに入れます。
②カートに入れた商品を買いたい場合は確定ボタンを押します。
③確定した商品は注文履歴に表示されます。

#画面
▪️全て注文履歴を表示
![TGi3⅞ HORXaRT.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/700700/6bc7f920-8c60-e5d6-bc8e-fc460b08cde2.png)

▪️直近3ヶ月の注文履歴を表示
![£ CONTERT.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/700700/89dc9479-4a5b-689e-3845-7f65d4f1302f.png)

#ER図
![EXt orders.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.co

元記事を表示

WindowsのPostgreSQLで初めてテーブルを作った件について

#はじめに
前回はDBをつくるところまでした。

https://qiita.com/Atsulabo/items/cfb089d1ccd5f82ab34d

今回はテーブルをつくって、出力するところまでやっていこうと思う
どんな形で出力すればいいのだろう。。。
初心者にはまだまだわからないところだらけ

#まずは作ったDBにログイン

“`
psql -U (登録したロール) (新規作成したDB)
“`
無事ログイン。
テーブル作成に入ります。
とはいっても仕事で使ってるのを使うわけにもいかないので、、、

ひとまずメンバーリストというテーブル(名前はmember)を作成すると想定して作る。
id
name
age
mailaddress

上のリンクによると、数字型・文字列型があるみたいだけど、

id(char(3))
name(varchar(15))
age(varchar(3))
mailaddress(text)

という感じにする。

というわけでコマンド

“`
CREATE TABLE member
(id char(3) not null,
name var

元記事を表示

Laravel で別のControllerのメソッドを呼び出す

呼び出したい側のControllerの頭に
`use App\Http\Controllers\HogeController;`

呼び出したいところに
`HogeController::hogemethod($a);`

と書けば呼び出せた。

元記事を表示

phpでLEFT関数とRIGHT関数

ExcelにあってphpにはないLEFT関数とRIGHT関数がほしかったので。

“`php:my_function.php
function left($str, $num, $encoding = “UTF-8”){
return mb_substr($str, 0, $num, $encoding);
}

function right($str, $num, $encoding = “UTF-8”){
return mb_substr($str, $num * (-1), $num, $encoding);
}

echo left(“あいうえお”, 3); // → あいう
echo right(“あいうえお”, 3); // → うえお
“`

元記事を表示

共同開発まとめ

初めに
—————————————
実務に近い経験を積みたい!と思い、共同開発のコミュニティに参加しECサイトを作成しました。
共同開発するにあたって苦労した点や、各機能実装の際に参考にした記事や教材について記事にまとめました。

アプリの概要
—————————————
ご当地の美味しいものをお取り寄せできるECサイト。
アプリURL https://www.tomtom-blog.net
※テストアカウント
メールアドレス test@co.jp パスワード123456789123でログインできます。
GitHub https://github.com/KawataTsutomu/yanbaru_ec_traning

**使用画面のイメージ**
![使用イメージ.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/983658/56b10107-0261-2975-c59f-d679393e0a

元記事を表示

PHPで配列の要素を部分一致で検索する方法 ( preg_grep )

# PHPで配列の要素を検索する方法
学べること
– preg_grepの使い方
– 変数を検索する場合の正規表現
## preg_grep

検索してマッチする配列の要素を返します。
– 使い方

“` php
$array = [‘hoge’,’huga’];
$result = preg_grep(‘/ho/’,$array);
var_dump($result);

//出力結果
// array(1) {
// [0] =>
// string(4) “hoge”
// }
“`

– 解説

preg_grepの第一引数には検索する文字列、第二引数には配列を入れます。
ここでは配列の要素で”ho”が含まれるものを検索しています。$resultには検索にマッチした要素が配列として入っています。

ちなみに、第一引数の検索する文字列を囲ってるスラッシュはデリミタ(区切り文字)と呼ばれ、スラッシュじゃなくてもかまいません。例えば`'{ho}’`でもOK.

## 検索文字列が変数の時

それでは、検索する文字列が変数だった場合はどうしましょう。
上記に従うと、

元記事を表示

PHP 基礎 Part1

#PHPとは

HTMLは決まった画像しか表示できませんが、
PHPは見る人や状況に応じてテキストを変えることができます。

PHPはHTMLに組み込んで使うことができます。
の中に命令を書いていきます。
文末にはセミコロンを使うようにして下さい。

出力する時はechoを使うようにしましょう。

##変数

変数はPHPでは$を使って書いていきます。

##文字列の連結

PHPでは文字列を連結する時は.を使います。

##変数展開

文字列の中に変数を入れる時は変数展開をしますが、
{変数}を使いましょう。

##配列

配列の時は$配列名 = array(値1,値2…)を使います。
配列の末に値を追加する時は$配列名[]= ‘値’を記述しましょう。

##foreach

foreachは()の最初に配列名を入れて、asの後に変数を入れる。
連想配列の時は(配列名 as キー変数 => 値変数)

##関数

関数はまとまった処理を行い、値を返すモノです。
組み込み関数と言って、予め関数が入っています。

いくつかの組み込み関数を紹介します。
echo str

元記事を表示

PHP8.1でarray_is_listが追加されたよ

# はじめに
こんにちは。
熱帯夜で全然寝むれず、寝不足だと暑さがより一層堪えますね…筆者です :sob:

さて、今回はPHP8.1で追加された関数`array_is_list`を紹介しようと思います。

# array_is_listとは
こちら↓

https://wiki.php.net/rfc/is_list

0から始まる連続した整数がkeyになっているかどうかを判定する関数です。

# 使用例

“`php
‘apple’, ‘orange’]); // true
array_is_list([0 => ‘apple’, 1 => ‘orange’]); // true

// 0から始まっていない

元記事を表示

Laravel のリリーススケジュールとサポート期限

ソース: Laravel公式 サポートポリシー(8.xリリースノート)

https://laravel.com/docs/8.x/releases#support-policy

## 現状(2021年7月時点)まとめ

LaravelにはLTS(Long Term Support:長期サポート)版があります。
現行のLTSは6.xで、**次のLTSは2022年1月25日リリース予定の9.x**になります。

**7.xはBug FixesもSecurity Fixesもサポート期限が終了している**ので
今利用すべきはLTSの6.xか、アップデートするなら8.xになります。
もし今利用しているのが7.xであれば8.xにアップグレードを行う必要があります。

現行ではLTSである6.xの方が後発の7.xよりサポート期限が長くなっています。
そのため頻繁にアップグレードできない場合はLTSからLTSへ上げていくのが定番ですが、
次回LTSの9.xより10.xの方がBug Fixes期限は長く、Security Fixes期限は同じになっています。
Laravelのアップグレード作業は1

元記事を表示

ec2のamazon linux2 にnginx+php-fpm+php7.4+phalcon4 セットアップ

#ログインしてrootで作業します

“`

timedatectl set-timezone Asia/Tokyo
timedatectl status
localectl set-locale LANG=ja_JP.UTF-8

yum update

amazon-linux-extras install php7.4

amazon-linux-extras install nginx1

“`

epelのインストール設定がいろいろ調べるとありますが、AmazonLinux2のamazon-linux-extras に存在したので、それをインストールして、有効にすればOKです。

“`
amazon-linux-extras install epel

yum-config-manager –enable epel

yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm

yum install php-mbstring

yum install pcre-devel

curl

元記事を表示

Boost your Laravel models by Lara Query Kit

# Lara Query Kit

Lara Query Kit utilizes the Eloquent model. PHP Trait and Laravel local scope are used to implement this utilitiy

### PHP Traits

PHP only supports single inheritance: a child class can inherit only from one single parent.

So, what if a class needs to inherit multiple behaviors? OOP traits solve this problem.

Traits are used to declare methods that can be used in multiple classes. Traits can have methods and abstract methods that can be used in multiple classes, and the meth

元記事を表示

Laravel でのファイルダウンロードを実装してみた

##LaravelでPDFファイルのダウンロードを実装してみて、こんなに簡単に実装できるんだ、、、と驚いたので書いてみた

####仕様、もしくは前提
・OS : Windows
・PHP 7.4.16 (cli) (built: Mar 2 2021 14:06:15) ( ZTS Visual C++ 2017 x64 )
・Laravel Framework 6.20.24
・ある画面に表示される「PDF出力」ボタンをクリックすると、DBに登録されているPDFファイルのパスを取得し、ブラウザ経由でローカルにPDFファイルがダウンロードされる。

####1.PDFファイルのパス取得
“`php
$res = \DB->table(‘files’)
->where(‘id’, ‘=’, $id)
->get();
$pdfFilePath = $res->pdf_pile_path;
//C:\LavelDir\storage\app\public\pdfFiles\202107191038162092931173.pdf
$pdfFileName

元記事を表示

Laravel+Eclipseで開発するための準備&Google App Engineにデプロイする

# 概要
以前からLaravelに興味があり、Laravelを用いて何かWebアプリケーションを作ってみたいと思っていました。

そこで先日、準備としてLaravelをインストールしてEclipseで開発環境を作り、作成した新規LaravelプロジェクトをGoogle App Engineにデプロイしてみました。最初は色々つまずきましたが、何とか一通りできたので参考にさせていただいたサイトと手順をメモとして残します。

## 目的
– Laravelをインストールしてプロジェクトを作成する
– LaravelプロジェクトをEclipseにインポートして編集できるようにする
– 作成したLaravelプロジェクトをGoogle App EngineにデプロイしてWebアプリとして公開する

## 環境
macOS Catalina ver.10.15.7
PHP 7.3.11
Laravel Framework 8.50.0
Eclipse Platform Version: 2021-06 (4.20)

※おおよその手順は同じだと思いますが、Windowsの場合手順が一部異なる可能性

元記事を表示

httpdとphp-fpmが動かない

EC2でwordpress環境を、codeDeployで自動デプロイ時に「systemctl start httpd.service」
「systemctl start php-fpm.service」を実行するのだが、1度目は動いて、二度目は動かない

#httpd原因

“`
#ログをコマンドで確認
vi /var/log/httpd/error_log
“`

“`
#ログ内容
[Mon Jul 19 13:41:39.413688 2021] [suexec:notice] [pid 3196] AH01232: suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Mon Jul 19 13:41:39.440099 2021] [lbmethod_heartbeat:notice] [pid 3197] AH02282: No slotmem from mod_heartmonitor
[Mon Jul 19 13:41:39.440194 2021] [http2:warn] [pid 3197] AH10034

元記事を表示

PHP基礎まとめ

未経験からPHP実務半年の駆け出しエンジニアです。
実務と学習で学んだ内容を整理のための記事です。
(学習内容は山浦清透さんの[独学エンジニア](https://dokugaku-engineer.com/course/serverside)というサイトで学んだものをベースにアウトプットしています。エンジニアとしての基礎力を習得したい方にはオススメです。)
PHP初心者の方は良ければ参考にしてください。

## 実務レベルで必要な姿勢(3つ)
1. 自分が理解したコードのみ書くこと
コピペで動いたからOKでは障害や問題等のエラー発生時に対応できない。
2. 読みやすいコードを書く
機能追加や修正は必ずある。その際にパッとみて分かるコードでないと対応できない。
(チーム開発や将来性を見越しているか)
3. 変更しやすいコードを書く
その場限りのコードではなく、機能の変更しやすいコード、拡張性の高いコードを書く。
(運用のこともイメージできているか)
※オブジェクト指向の設計手法が変更・拡張性のしやすいコードに繋がる

## PH

元記事を表示

PHP 任意の文字列の中に指定の文字列があるかどうかを調べる

# 目的

– 任意の文字列の中に指定の文字列があるかどうかを調べる`strpos()`メソッドについてメモ的にまとめる

# 情報

– 筆者は下記のサービスを使用して当該メソッドの動作検証を行った。
– [https://paiza.io/ja](https://paiza.io/ja)

# 方法

– 下記のように記載することで任意の文字列中に指定の文字列があるかどうかを調べる事ができる。

“`php
strpos(‘任意の文字列’, ‘指定の文字列’);
“`

– `strpos()`メソッドの戻り値
– 任意の文字列内に指定の文字列が存在した場合、「任意の文字列の先頭から指定の文字列までの文字数」をバイト単位で返す。~~(日本語は2バイト文字なので注意)~~
– 任意の文字列内に指定の文字列が存在しなかった場合、`false`を返す。(この関数はboolのfalseを返すが、「falseとして評価される値」を返す可能性があるらしい。戻り値の比較には`===`演算子を使用して厳密に比較する必要がある。)

# 例

元記事を表示

Composerのインストール手順

## Composerとは

PHPの依存管理ツール。パッケージ管理ツール。

## パッケージ管理ツールとは

パッケージとは便利ツールなど複数のファイル一式が集まったもの。
パッケージを使用するには別のパッケージが必要だったりする。これを依存関係という。
インストール時やアップグレード時には依存関係にあるパッケージを自動でインストールやアップデートしてくれる。

## インストール手順

“`jsx
//①composerのインストール
curl -sS https://getcomposer.org/installer | php
//-sは通常出力される進捗状況表示やエラーメッセージ表示を表示しないようにする
//ただし-Sを同時に指定することでエラーメッセージの表示抑制は行わない、

//②composerのファイルを/usr/local/binに移動
sudo mv composer.phar /usr/local/bin/composer

//③composerのアクセス権限を変更する
chmod a+x /usr/local/bin/composer
//a+xは全

元記事を表示

MAMPでタイムゾーン変更が反映されない時

#MAMPでphp.iniファイルのtimezone設定を変更したのにタイムゾーン変更が反映されない
php.iniファイルを編集したはずなのに変更が反映されない
どうして?

##確認1 編集したphp.iniファイルは正しいですか?

### php.iniファイルの場所の確認
1, MAMPコントローラーからWebStartボタンをクリックしMAMPのページを開きます
2, **Tools**メニューから**phpinfo**を選択します。
3, **phpinfo**が表示されたら**Loaded Configuration File**の項目を確認します。
ここに編集すべきphp.iniファイルの場所とファイル名が記載されています。`/Applications/MAMP/bin/php/php(バージョン番号)/conf/php.ini`

このファイルを編集しないと変更が反映されません。

### よくある間違い
`/Applications/MAMP/conf/php(バージョン番号)/`フォルダに有る`php.ini`ファイルを編集した。

##確認2 php.iniフ

元記事を表示

OTHERカテゴリの最新記事