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

PHP関連のことを調べてみた2020年09月01日
目次

PHPでの開発を始めるので、概要をまとめてみた

# PHPとは
Webアプリ開発ができる

# 役割

– HTMLを作ること
– データを管理すること

# ローカル開発環境

サーバーにアップせずにPHPが書き換えたHTMLを確認するために必要な作業

必要なインストール

– PHP
– Webサーバー

上記はインストールがかなり難しい。

なので、インストールをアシストしてくれる、XAMPPやMAMPを使う。

# MAMPとは

Macintosh、Apache、MySQL、PHPを省略してつなげた名前。

簡単にWeb開発環境を立ち上げられるようにするために必要なソフトウェアをパッケージ化したもの。

XAMPPとほぼ一緒。開発元が違う。

RubyやPythonを使う人向け。

# コードの書き方

“`php
// 最初に で囲う。
 

// 変数

元記事を表示

MacでLaravelの環境を構築した

# はじめに
最近研究室でMacを購入してもらったので、MacにLaravelの環境構築をしました。Laravelは最近本を参考にしながら勉強をしており、まだまだ初学者ではありますが、頑張ってます。レベルで言うとCRUD機能を作れるようになったくらいですね。この記事は備忘録程度でまとめておきます。

# brewのインストール
Laravelをインストールする前にMacを買ったらすぐに`brew`をインストールしましょう。すでにインストールしている方は飛ばしてもOKです。
brewのインストール手順は以下のサイトに詳しく手順が載っているので、そちらを参考にしながら行ってください。
https://brew.sh/index_ja

# composerのインストール
brewのインストールができたら、次はLaravelをダウンロードするために必要なパッケージ管理システムである`composer`をダウンロードしましょう。

“`
$ brew install composer
“`

インストールが終わったら、しっかりインストールできているか確認しましょう。

“`
$ brew

元記事を表示

PHPのコンストラクタはprivateにできる

「PHPにおいてコンストラクタのアクセス権は`public`である必要がある」とする記事をいくつか見かけたのですが、**これは誤りです。**
(例)https://laraweb.net/surrounding/1472/

他の言語のことは知りませんが、少なくともPHPは、[コンストラクタ](https://www.php.net/manual/ja/language.oop5.decon.php)を`private`や`protected`に設定することができます。

# コンストラクタがprivateになるとどうなるか

**クラスの外から`new`できなくなります。**
以下のコードはFatalエラーになります。

“`php

元記事を表示

WindowsでXAMPPにPHP8.0.0β2をインストールする

先日[PHP8.0.0α1でJITを試したとき](https://qiita.com/rana_kualu/items/73c346b3feadfa3a5b21)はPHP8をXAMPP経由で起動することができなかったのですが、今回動かすことができたので、その方法の共有です。
今回試したのはPHP8.0.0β2です。

# XAMPPインストール

まずローカルのXAMPPを削除。
[公式サイト](https://www.apachefriends.org/jp/index.html)からWindows向けXAMPPの最新版をダウンロードしてインストール。
既にPHP7.4.x版が入っているようなら、そのままでもいけると思います。

# PHP8.0.0インストール

[Windows版ダウンロードページ](https://windows.php.net/qa/)から`VS16 x64 Thread Safe`をダウンロード。
適当に解凍。
`path\to\xampp\php`ディレクトリにだばぁ!と上書き。
`php.ini-development`を既存の`php.ini`に上書

元記事を表示

郵便番号ハイフンあり、なしどちらでも補完できるように対応(PHP)

Webページで入力した郵便番号をDBに保存する場合の備忘録 ※PHPの場合
ハイフンあり、なしどちらでも補完できるように対応

“`
// 調査用文字列としてハイフンを変数に入れる
$pattern = ‘-‘;

// 入力文字列(郵便番号)にハイフンが含まれているか
$pos = strpos($p_data[‘inZipCode’], $pattern);

// ハイフンが無かったらハイフンを挿入する場合
if ($pos === false) {
$chgZipCode = substr_replace($p_data[‘inZipCode’], $pattern, 3, 0);
// ハイフンがあったらハイフンを削除する場合
} else {
$chgZipCode = str_replace($pattern, ”, $p_data[‘inZipCode’]);
}
“`

SQL検索時に入力された値と変換された値をor検索すればOK

上記のコードをそのまま使ってうまくいかない!というのはナシね。
参考にする場合はちゃんと読み解いてください。

元記事を表示

Laravel MailCatcherでメールを受け取る

# 目的

– Laravelから送信したMailCatcherで受け取る方法をまとめる。

# 実施環境

– ハードウェア環境

| 項目 | 情報 |
| — | — |
| OS | macOS Catalina(10.15.5) |
| ハードウェア | MacBook Pro (13-inch, 2020, Four Thunderbolt 3 ports) |
| プロセッサ | 2 GHz クアッドコアIntel Core i5 |
| メモリ | 32 GB 3733 MHz LPDDR4 |
| グラフィックス | Intel Iris Plus Graphics 1536 MB |

– ソフトウェア環境

| 項目 | 情報 | 備考 |
| — | — | — |
| PHP バージョン | 7.4.3 | Homwbrewを用いて導入 |
| Laravel バージョン | 7.0.8 | commposerを用いてこちらの方法で導入→[Mac Laravelの環境構築を行う](https://qiita.com/miriwo/items

元記事を表示

【PHP・AWS】AWS Cognitoを通してS3にアップロードする方法

# はじめに
PHPでAWS Cgnito認証を通してAWS認証情報を所得してS3を使用する記事が少なかったので、自分の備忘録としても記事に残したいと思います。
※あると程度AWSやCognitoを知っている程でいきます?

# 環境
下記のものをcomposerでインストールしておきます。

“`
aws/aws-sdk-php: 3.26.3
pmill/aws-cognito: ^0.2.11
“`
PHPのバージョンは 7.4.1 です。
## Cognito
### ユーザプールの作成
![スクリーンショット 2020-08-27 23.42.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/649661/e6038939-29ce-1ea6-825f-0d26b2643498.png)
適当にプール名を入れて、「ステップに従って設定する」を選択しましょう。

![スクリーンショット 2020-08-29 13.27.06.png](https://qiita-image-store.s

元記事を表示

ElasticBeanstalkにLaravelアプリケーションをリリースするときのebextension設定

Laravelをプロダクションでリリースするときには、configキャッシュやrouteキャッシュをすると、より効率的に実行されてアプリケーションのレスポンスが向上します。

ElasticBeanstalkにリリースする場合は、`.ebextensions/*`に.configファイルを置くことで、リリース時のコマンドを追加することが出来ます。

“`yaml:.ebextensions/laravel_cache.config
container_commands:
01-cache_config:
command: “php artisan config:cache”
02-cache_route:
command: “php artisan route:cache”
03-cache_view:
command: “php artisan view:cache”
“`

以上で、config、route、viewのキャッシュをアプリケーションをアップロードした後に生成することが出来ます。`container_commands`はApach

元記事を表示

WordPressのパーマリンクにindex.phpが表示される

久しぶりにWordPressを触ったら、パーマリンクがおかしくなる問題が。。。

##状況

WordPressで、URLにindex.phpを噛んじゃう。
こんな感じ↓

https://sample/index.php/投稿記事名/

理想(本当)は
固定ページを表示させる時に、

https://sample/固定ページ/

で、表示されるはずなのにできず、

https://sample/index.php/固定ページ/

だと表示される、謎。。。

##環境

MacBook Catalina
MAMP
PHP 7.4.2
WordPress 5.5.5(5.4.2も試した)

##解決方法

原因が全く分からず、苦労しました。。。

(そもそも、いつから発現してるのか、不明。)
(PCの不良でジーニアスバーに連れてっているので、それが原因かなぁとも)

単純に、MAMPの設定の話でした。

MAMPのhttpd.confの中

“`httpd.conf

Options Indexes FollowSymLinks
Allow

元記事を表示

PHP+MySQLでポートフォリオ作成

#記事の概要#
私が作成したポートフォリオを紹介します。

#背景#
現在、30歳、プログラミング未経験からエンジニアを目指し勉強しています。
フロントエンドエンジニアを目指していますが、バックの知識も少しは必要だということで、勉強中のPHPでポートフォリオを作成しました。

#目的#
・PHPを用いたWebアプリケーション開発経験を積む
・フルスクラッチ開発によってWebアプリの基本的な構成、動作を知る
・Web系企業さんの即戦力になれる技術を身につける(そこまでは厳しかった)

#スペック#
**言語**
PHP 7.4.6

**DBMS**
MySQL 8.0.21

**開発環境**
MacOS Catalina 10.15.6
MAMP

#主な内容#

元記事を表示

PHPStormとdocker上のxdebugとの連携に詰まったら。トラブルシューティング

# これはなに
PHPStormとdocker上のxdebugを連携したいケースで、
「なんで繋がんないんだよ!!」ってなったので、
ヒントになることを書きます。

## Xdebugとは?

> Xdebugとは高機能なPHPのデバッグツールです。 PHPのデバッグでおなじみの「var_dump」を見やすくしてくれたり、ボトムネックになっている処理を見つけたり、ステップ実行できたりします。 その他のデバッグツールとしてはZendDebuggerがあります。
[Xdebugを使い倒す5つのTIPS | スマホサイト・アプリをつくろう。](http://www.plusmb.jp/2009/06/26/3923.html)
より。

# ログを有効化する

xdebug.iniやphp.iniに設定を追加しましょう。
追加したらnginxやapacheの再起動が必要です。

“`
xdebug.remote_log=/tmp/xdebug.log
“`

/tmp/xdebug.logにログが表示されますので、
出力されたエラー内容を見て、原因を特定しましょう。
ググれば関連する情報

元記事を表示

久しぶりにmac向けXAMPPをインストールしたら一味違っていた件

# 結論
1. VMになっていた
2. `http://localhost~`じゃなく`http://{IPアドレス}~`でアクセスする

# XAMPPのインストールをする

[XAMPP](https://www.apachefriends.org/jp/index.html)

2020/08/30時点のバージョンは7.4.9

![スクリーンショット 2020-08-30 16.05.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/699952/a64f1e2a-a0f6-5938-0c28-7b5ff26f06cf.png)

#### finderにできるはずのXAMPPフォルダがなくなっていることに気づく

# とりあえずXAMPPをスタートさせてみた

するとなんだかローカルIPアドレスが割り振られたように見える

![スクリーンショット 2020-08-30 16.12.26.png](https://qiita-image-store.s3.ap-northeast-1.ama

元記事を表示

【初心者開発日誌】PHPで楽天APIを使ってみたい #1

昨日までの開発内容をまとめて書きます。

#PHPのインストール
実は先月、4年間愛用していたMBPが壊れてしまい、今月から初めてwindowsを使っています。
プログラミングの環境も全く整っていないのでまずはここからになりました。
macはPHPのインストールが不要であるため初めてのインストール。
パスを通さないとコマンドラインでPHPを実行できないことすら知りませんでした。

“`bash
>php -v
‘php’ は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
“`
パスが通っていないのでこの表示になり驚くところからスタート。
パスを通す際、エクスプローラーに「パスのコピー」というボタンがあるのに気づくまで何度も誤字を出しました。

参考にしたサイト:
[【Windows編】今すぐ簡単にできる!PHPのダウンロード方法](url ‘https://techacademy.jp/magazine/11489’)

#Gitプロジェクトの作成
勉強用の開発なのでついでにGitも使ってみることにしました。
ローカルとGi

元記事を表示

【初心者開発日誌】PHPで楽天APIを使ってみたい #0

外部API連携をやってみたい初心者の開発日誌です。
かなり初歩的な内容になると思います。
記録として記事を残し、あとで見て笑い飛ばせるようになればと思います。

#経緯
私はいま大学3年生で、将来漠然とエンジニアになりたいと思っています。
ですが自分がやりたい分野がどこなのかいまいちわかっていません。
そこでとある人にもらったアドバイスが、「webサービスを1から自力で作ってみて一番楽しかった工程が向いているのではないか」というものでした。
また、先日ある短期インターンに参加したのですが、内容が「APIを用いた開発をしてみよう!」で、APIを使ったことのない私はわけもわからず状態になってしまいました。この悔しさから自力で作るwebサービスには必ずAPIを組み込もうと決めました。

実は数日前から開発を進めているのですが、なかなか思うようにいかず勉強の毎日です。そこで開発日誌を残せばあとあと面白いのではないか?と思い開発日誌を書くに至りました。

#目標
最近料理にはまっているので、楽天レシピ系APIを使ってレシピ検索サイトを作ることを目標にしました。

カテゴリ検索ができるようにする

元記事を表示

【Laravel実践】リクエストパラメータ名をスネークケースに変換する方法

# Version
– Laravel 5.7
– PHP 7.2.31

# 前提
LaravelでAPIを開発する際、キャメルケースとして書かれたリクエストパラメータ名をスネークケースに変換したい、という要望を想定します。たとえば、SPA開発においてReact.jsやVue.jsにより非同期通信でLaravelのAPIにリクエストを送信する際、フロント側としてはキャメルケースで統一したいがバックエンド側としてはスネークケースで統一したい、というケースです。

Laravel側で簡単に変換する方法をググったのですが、ベストプラクティス的な方法が出てこなかったのでここに共有します。

# 早速、変換してみよう。
結論だけ述べると、以下の方法で実現できます。

`$request->all()`でリクエストパラメータを受け取り、リクエストパラメータ名(`$key`)に大文字が含まれる場合にスネークケースに変換・挿入、`offsetUnset()`で元のプロパティ名を消す、ということをやっています。

“`php
foreach ($request->all() as $key => $

元記事を表示

CodeIgniter3 から Laravel へ。文化の異なるフレームワークへ飛び込む上で,ハードルになりそうなパッケージ管理システムの概要を解説

# 概要

今回は,より高度な(実用的な)仕様の例題を設定し,CodeIgniter と Laravel のコードを対比させていきたいと思います。

具体的には,CSS と JS を組み込んだページを作成したいと思いますが,具体的なコードの紹介は次回の記事にゆだね,今回は,もっと基本となる**「パッケージ管理システム」**について触れます。

あまり一気に難しくならないよう,極力配慮したいと思いますが,前回よりは,ハードルがぐーんと高くなり,おじさんの言語化能力で,どこまで的確に表現できるか,冷や汗をかきそうです(プレッシャーの重圧感)。

マサカリ歓迎案件です(いろいろ教えてください)。

# Laravel で登場する,2つのパッケージ管理システム

どのタイミングで話すべきか迷ったのですが,いずれ書かねばならないことなので,今のタイミングにします。

「軽量であること」を強みとする CodeIgniter は,フレームワークと言うより,フォルダ構造を決めただけの,ファイルの集合体に近いですね(そんな言い方をしてしまうと,世の中のすべてのフレームワークが,「ファイルの集合体」と言え

元記事を表示

[PHP基礎体力向上]競プロ(AOJ-ICPC)の基礎問題をPHPで解いていこう!

# この記事の対象読者
– paizaでランクアップを目指す(Aランクくらいまで)の未経験/駆け出しエンジニア
– ドットインストールや入門書籍でPHPを学んだが、まだ”手に馴染んでいない”初学者

# この記事を書いた目的

書籍やドットインストール等のオンライン学習教材でプログラミング言語を学んだ初学者がいきなりWebサイトを作るのは中々ハードルが高いです。

そういった初学者にオススメしたいのが簡単なプログラミング問題を解いて練習することです。
この練習を通して「サービスの企画に力を分散させることなく、純粋にコーディング能力を鍛える」ことが出来ます。

これは後々Webサービスを開発する上でも絶対に役立つ基礎力になるはずです。

これは未経験からソフトウェア開発職にキャリアチェンジしたい方にもオススメのやり方です。
例えば[paiza](https://paiza.jp/)というコーディングテストを受けて就職活動が出来るサービスではAランクくらいまで取れればかなりの数の企業に”エントリーシートなしで”面接することが出来ます。またpaiza以外の媒体で面接した企業の方にも「pa

元記事を表示

WordPressにプラグインなしで目次を自動生成する(style、スクロールアニメーション付き)

WordPressの投稿エリアにプラグインなしで実装できる目次機能をつくっていきたいと思います。

##今回作るものの要件

– h2、h3を読み取って自動的に目次を生成する
– h3は小見出しとして、h2にぶら下がるように表示する
– クリックしたらスクロールするアニメーションを付ける

##目次を自動生成するPHPスクリプト
WordPressでご使用中のテーマファイル内のfunctions.phpに以下をコピペします。
コードがごちゃごちゃするのが嫌なのでDOMDocumentを使ってHTMLを構築しています。

“`php:functions.php
class PHPDOM
{
public function __construct()
{
$this->doc = new DOMDocument(‘1.0’, ‘UTF-8’);
}

public function setNode(string $tagName, ?string $className = null, ?string $text = null): objec

元記事を表示

mac編 MAMPにcakephpをインストールする方法

#手順公開(備忘録)

##1.macにMAMPをインストール

##2.MAMPのphpにPATHを通す(ターミナルでmac内のphpからMAMPのphpにPATH)

ターミナルで

“`
macbook:~ user$ which php
“`

を実行すると、現在の状態がわかるので(/usr/bin/php)と表示されるはず。
調べるとこのphpは元々macに入っているphpだそうでこのままじゃダメだそうです。

この場合MAMPのphpにPATHが通っていないので、
ターミナルで

“`
macbook:~ user$ .bash_profile
“`
を実行してvim操作にうつる。

##3.VimでMAMPのphpにPATHをとおす

Vimの画面でインサートモードに切り替えて

“`
export PATH=/Applications/MAMP/bin/php/php?.?.?/bin:$PATH
“`
を実行。
/php?.?.?/の部分はphpバージョンを選ぶ。
インサートモードを終了して保存してVim画面も終了。
※Vimのコマンド操作は事前に見とく。

元記事を表示

PHPにおけるアロー演算子

#プログラミングの勉強日記
2020年8月29日
アロー演算子(`->`の記号)の使い方をまとめる。

#アロー演算子とは
 上でも述べたが、`->`の記号のことをアロー演算子という。アロー演算子は左辺にクラスのインスタンスを、右辺に左辺のクラスが持つプロパティやメソッドを指定してプロパティへのアクセス・メソッドの呼び出しをする。

#書き方
 アロー演算子の使用例は以下のようになる。

“`php
// インスタンスが持つプロパティであるプロパティ名にアクセス
$instance->プロパティ;
// インスタンスが持つメソッドであるメソッドの呼び出し
$instance->メソッド();
“`

 具体的に以下の例では、「sports」というクラスの中にある「$basketball」という変数にアクセスして値を取り出す。

“`php
class Sports {
$basketball = “バスケ”
$baseball = “野球”
$soccer = “サッカー”
}
fruit->$basketball //野球
“`

#DataTimeクラスを用いて

元記事を表示

OTHERカテゴリの最新記事