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

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

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のhttpd.confの中

“`httpd.conf

Options Indexes FollowSymLinks
AllowOverride None

“`

Al

元記事を表示

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~`じゃなくなっている

# 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.amazonaws.com/0/69995

元記事を表示

【初心者開発日誌】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クラスを用いて

元記事を表示

Laravel 7系のAuth認証のルーティングをカスタマイズする

#§1. はじめに
Laravelでログイン機能を簡単に実装できるAuthファサードですが、その中身をいじるとなると一気にハードルが上がります。

そしてLaravelのバージョンによってAuth本体のディレクトリの階層構造が異なるという難しさもあります。
調べていてもLaravel5系か6系の情報がほとんどで、7系だと適用できないんですよね。
フレームワークではよくあることかもしれませんが。。

ですので今回はLaravel7系において、Authのルーティングをカスタマイズした時の情報をシェアしたいと思います。
Laravelのバージョンは7.25.0を使用しています。

#§2. やること
今回の記事のスコープは以下の2点です。
 (1) ログインした時のリダイレクト先をカスタマイズする
 (2) Login画面のURLをカスタマイズする

前者はコントローラ周りの修正のみで容易ですが、後者はAuthの仕組みを理解しながらVenderディレクトリの深いところをといじるので少し難解です。
ですので初学者の方は(1)までに留めたほうが良いかもしれません。

では前者から順番に

元記事を表示

データベースフレームワークMedooの書き方 備忘録

たまたまMedooを使う機会があったので、備忘録として書き方を残しておきます。

Medooとは

PHPのデータベースフレームワークです。
(公式サイトはこちら

構造

私が使った内容がこちらです。配置する順番は以下になります。

“`sample.php

select(
“Account”,
[
“[><]Shop" => [“Shop” => “id”],
“[><]Product" => [“Product” => “id”]
],
[
“Account.Id”,
“Account.Name”,
“Account.Tel”,
“Shop.Id(Shop_id)”
“Shop.Name(Shop_Name)”,
“Product.Name(Product_Name)”
],
[
“AND” =>
[
“Accou

元記事を表示

Humhubのカスタムモジュールの作り方(公式ページのとある解釈)(1)

#はじめに
ふと見回してみたが、日本語でのhumhub運用記事はやや見かけるもののの、モジュール開発の情報は少ないようだと気づいた。また、業務でhumhubを運用している仲間内で、技術の情報を記録・情報発信してはどうかと意見がでた。そこで、自分の作業の備忘録、技術継承の意味もかねて記録を作り、情報を発信しておこうと思った。

この文書は、必要最低限の情報を記載したもの。詳しくは、公式ページの”最新”の情報ドキュメントを頼ってほしい。公式のサイトは、予告も更新履歴も示さずにいきなり書き換わるので要注意だ。なお、この文章のところどころに公式に対する棘が感じられるかもしれないが、棘を生やしたくもなるような公式ドキュメントであるためだということに読者の共感が得られるのではないかと、昭和のおじさんは思うのだ。平成生まれの略語感覚の若者の発想についていけない僻みであろう。許してほしい。

https://docs.humhub.org/docs/develop/modules

以下、心を広く持って読んでほしい。なぜなら、公式の情報でわからない部分について経験から作成した駄文注釈満載だからだ。間

元記事を表示

【PHP】str_repeatで同じ文字列を繰り返す

### 環境
・ホストOS: Windows10 Home
・ゲストOS: WSL Ubuntu20.04
・PHP7.4
・Laravel FrameWork 7.17.2

## 関数概要

**str_repeat(string, int)**とすると、stringがint個連結された文字列を返す。

使用例は以下の通り

“`php

echo str_repeat(‘にゃーん’, 3);
//実行結果
にゃーんにゃーんにゃーん
“`

この関数がどんな時に使えるかというと、**境界値テストで文字数の多いプロパティを生成するときに便利** 。

例えば最大文字数を200文字のカラムのバリデーションテストをする場合、手動で入力すると文字数の把握が難しいうえ、毎回入力するのは時間がかかってめんどくさい。テストコードを書くにしても長い文字数を打ち込むことにはかわりない。

こういう問題を解決してくれるのがこの関数
任意の長さの文字列を生成できるので入力値の境界値テストを実施しやすい。

数百文字を直接打ち込む場合と比べてコードの可読性が高いので文字数の過不足によってテストが

元記事を表示

PHP: Smarty の使い方

Ubuntu 20.04 で確認した方法です。

ライブラリーのダウンロード

“`bash
wget https://github.com/smarty-php/smarty/archive/v3.1.35.tar.gz
“`

インストール

>v3.1.35.tar.gz を解凍して、/usr/local/lib 以下に置く

サンプルプログラム

フォルダー構造

“`text
$ tree
.
├── templates
│   └── hello.tpl
├── templates_c
└── test.php
“`

templates_c で書き込めるようにして置く。777 なら確実に書き込める。

“`php:test.php
template_dir = “

元記事を表示

Laravel いいね機能を追加しよう(1)

いいね機能では、いいねテーブルの更新前後で画面遷移は発生させずに、ハートの色といいね数表示を変化させるようにします。

これを実現するため、いいね機能ではクライアント(PCやスマホのブラウザ)からサーバー(Laravel側)へ通信する方法として、formタグではなくJavaScriptを使用します。

今回は、ハートを押された時のサーバーへの通信や、ハートの色やいいね数表示の切り替えといった一連の処理を効率的に開発できるよう、JavaScriptのフレームワークであるVue.jsを使用します。

## 1. Vue.jsをインストールする

Vue.jsをインストールします。

laravelディレクトリのpackage.jsonを以下の通り編集してください。

“`
.
└──laravel
└── package.json
“`

“`php:package.json

// 略
“devDependencies”: {
“axios”: “^0.19”,
“cross-env”: “^5.1”,
“laravel-mix”: “^4.0.

元記事を表示

Laravel で varcher 型を数値としてソートする (column-sortable)

## やりたいこと
MySQL において varchar で定義されたカラムを数値型としてソートしたい。

### どういうこと?
varchar のカラムを order by すると、辞書順にソートが行われる。
例えば `100`, `2`, `99`, `11` というデータがあり、これを昇順に並べるたいとする。
通常は `2`, `11`, `99`, `100` と並ぶことを期待するが、 varchar の場合は `100`, `11`, `2`, `99` という順番になってしまう。
なので、これを期待する順序に並ぶようにしたい。

### 考えうる解決策
1. カラム数値型に変える
2. ゼロパディングする (例: `100`, `002`, `099`, `011`)
3. 対象のデータを数値型にキャストする

本稿では 3 を取り扱う。

## 前提条件等
### 環境
* PHP 7.3.4
* Laravel Framework 5.8.24
* mysql Ver 14.14 Distrib 5.7.25, for Linux (x86_64)

### col

元記事を表示

OTHERカテゴリの最新記事