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

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

Bootstrapをオフライン環境で使用する方法

# はじめに
Bootstrapは\内に下記を追加するだけで使用できますが、こちらはCDNを利用した方法のためオフライン環境では使用することができません。
“`“`

オフラインで利用する場合は、Bootstrapの資材をダウンロードしてインストール作業等行う必要があります。
公式サイトにも手順が記載されていますが、個人的に分かりにくいと感じたので、こちらで手順をご紹介します。

# 前提条件
本手順はリリース前の環境構築段階でインターネット接続できる状態を想定しています。
環境構築段階で既にオフライン状態である場合は、下記リンクの「コンパイルさ

元記事を表示

Laravel 8 のプロジェクトを適当に作る

## 背景

Tipsの記事を書くのにいちいち前提条件を書かなくていいようにまとめる。

## プロジェクトの作成

“`sh
laravel new example-app
cd example-app
“`

## データベースの設定

楽したいので SQLite を使う。

“`sh
touch database/database.sqlite
“`

`.env` を書き換えて、DB 周りの環境設定を SQLite に合わせる。

“`diff
– DB_CONNECTION=mysql
– DB_HOST=127.0.0.1
– DB_PORT=3306
– DB_DATABASE=example_app
– DB_USERNAME=root
– DB_PASSWORD=
+ DB_CONNECTION=sqlite
“`

元記事を表示

みんなの株式からスクレイピングするとこうなる感じでしょう的な・・・。

みんなの株式からスクレイピングするとこうなる感じでしょう的な・・・。
尚、コマンドラインから打ってください。

“`
minkabu.php minkabu 9432
“`

$argv[2]には銘柄コードが入ります。
※いまは機能するコードですが、みんなの株式のHTML構造が変われば取り出し方を変更する必要があります。

“`php:minkabu.php
loadHTML($html, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
$xpath = new DOMXPath($dom);

元記事を表示

10年間のエンジニア生活と勉強したこと、いま考えていることを振り返る

#はじめに
最近、新人を教えることが何件か続き、社内でも勉強会をやることになったので、思ったことを思いついた順に書いていきます。
自身の振り返り兼どんなことを勉強したのか、どんな本を読んだのかを書いていきます。

# 自己紹介
エンジニア歴12年
大手SIerにてシステム開発 6年
アフリカでふらふら 2年
ベンチャーにてシステム開発 4年
### 大手SIer時代
大手飲食チェーンPOS開発
大手カード会社基幹システム開発
大手放送会社基幹システム開発 など
重厚長大、予算○億、開発工数○000人月みたいなプロジェクトで働く。
スキルセット:Java,OracleDB,OracleEBSなど
###アフリカ時代
現地の職業訓練校の先生、生徒にPCの使い方、Webサイト作成などを教える
壊れたPC10台もらってきて3台の動くPCを作る など
###ベンチャー時代(現在)
フィリピンからリモート開発
月間500万PVのWebメディア運営
ECサイト作成
LP作成
Wordpressでサイト作成 など

スキルセット:
PHP(Laravel、Symfony,EC-Cube)
mysql

元記事を表示

Laravel+GuzzleでホットペッパーAPIを叩いてレストラン情報を取得する方法

こんにちは、くりぱんです。

## この記事で実現できること
– Laravel+Guzzleの開発環境構築
– HotpepperAPIでレストラン情報を取得する

## 説明
今回はLaravel+GuzzleでホットペッパーAPIを叩いてレストラン情報を取得していきたいと思います。

## 開発環境
– Laravel: 6.2
– Guzzle: 7.2

## 実装の流れ
1. リクルートWEBサービスへ新規登録
1. Laravelプロジェクトの作成
1. Guzzleのインストール
1. Guzzleを使う前の準備
1. Route
1. Controller
1. View

## 実装

### 1. リクルートWEBサービスへ新規登録
無料かつメールアドレスのみで簡単に登録できるので、[こちらよりアクセス](https://webservice.recruit.co.jp/doc/hotpepper/reference.html)して、新規登録ボタンをクリックして登録してください。
※記事執筆当時は左上辺りに新規登録ボタンがありました。

新規登録が終わると登録

元記事を表示

標準入力 電話番号のハイフンを消して一文字ずつ配列に入れる方法

#標準入力で役立つ関数
###str_replace();
[str_replace](https://www.php.net/manual/ja/function.str-replace.php)
文字列から任意の文字列を置き換える

例)

“`php

$tel = ‘090-1111-2222’;
$t = str_replace(‘-‘,”,$tel);
//結果
//09011112222
“`

###str_split();
[str_split](https://www.php.net/manual/ja/function.str-split.php)
文字列を配列に変換する。
第一引数に変換する文字列
第二引数に変換する文字の文字数
を指定

“`php

$t = ‘09011112222’;
$arr = str_split($t,1);

// var_dump($t);
/*
[0]=>
string(1) “0”
[1]=>
string(1) “9”
[2]=>
string(1) “0”
[3]=>
string

元記事を表示

Laravel/Dusk でブラウザテストする際のちょっとしたTipを2つほど

# はじめに

Laravel/Duskを使い始めて標準で用意されていないケースが2つほどありました。
その対策を紹介したいと思います。

# 1.CSSの情報を取得

ElementResolverとWebDriverのメソッドを活用します。

“`testExample1.php
public function testExample1()
{
$this->browse(function (Browser $browser) {
$browser->(略);
$opacity = $browser->resolver->findOrFail(‘div.hoge button’)->getCSSValue(‘background’); # buttonタグで指定されているStyleのbackground値を取得している
$this->assertEquals($background, ‘rgb( 128, 128, 128 )’); // 色情報はrgb関数で表記する。#は使え

元記事を表示

はじめてのLaravel環境構築(Docker)

###開発環境
**Docker環境**
* PHP 7.4-fpm
* Composer 2
* NginX 1.15.6
* MySQL 8.0.19

###以下を参照
DockerでLaravel環境を構築する①〜③
https://qiita.com/wjtnk/items/9d6a56a05bff2068cd2c
https://qiita.com/wjtnk/items/fa2b9d848bc64261d0e9
https://qiita.com/wjtnk/items/9e553f90f38e279a8b99

##NginXの設定ファイルについて詳しい説明がなかった為、解説してみる

“`conf:default.conf
server {
listen 80; #IPとポートを指定する

root /var/www/html/laravel-app(プロジェクト名)/public; #ドキュメントルートを指定する
index index.php index.html; #index.phpがあればindex.php,なければindex

元記事を表示

Crostini + Laradock でChromebookのPHP開発環境をつくる

ChromebookでPHP開発環境を作ります
Chrome OSのLinux環境(Crostini)を使います
PHPフレームワークLaravelの開発をお手軽にしてくれるLaradockをインストールして動かします。
「Laradockは、Docker用の完全なPHP開発環境(公式サイトより)」

# Crostiniの基本的な環境構築

– 日本語化
– npm などのインストール
– Docker、Docker Compose のインストール

などはたくさん有益でわかりやすいな情報があるので、それぞれ参考にしてください。(参考になったサイトを下の方にまとめました)

# Laradockのインストール

[Laradock公式サイト](https://laradock.io/)
公式サイトで丁寧に解説してくれているので、この通りでインストールできます。

適当な場所にて

“`sh:ターミナル
git clone https://github.com/Laradock/laradock.git
“`

環境ファイルを作成(いったんそのまま)

“`sh:ターミナル
c

元記事を表示

EloquentModelのコンストラクタを正しく宣言するには

# はじめに

Modelのコンストラクタに必要な設定が施されていないがために、FactoryでModelを生成した際にModelの値が何も設定されていない、という現象に出くわしました。
コンストラクタ宣言時の注意点について備忘として残します。

## バージョン情報
PHP: 7.4
Laravel: 5.7 (古い。。。)
Vessel: 6.0

## 結論

先に結論を書きます。
Modelのコンストラクタを宣言する場合、親クラスのコンストラクタを呼び出す必要があります。
`parent::__construct($attributes)` で親クラスのコンストラクタを実行することで、Modelの初期化に必要な処理が実行されます。
↓の継承元の親クラス(Modelクラス)のコンストラクタを見てみると、いくつかの処理を実行することで初期化をしていることがわかります。
`parent::__construct($attributes)` を実行しないことで、HogeModelは知らぬ間にコンストラクタをオーバーライドしてしまっていたようです。

“` Hoge.php

元記事を表示

PHP exec , execute 違い

#プリペアドステートメント使えるかどうか
参考:

【PHP】exec(), query(), prepare()の違い


https://www.php.net/manual/ja/function.exec.php
https://www.php.net/manual/ja/pdostatement.execute.php

###exec
一方的なINSERT, DELETEで使える

###execute
SELECTは必ずこっち

元記事を表示

PHP 標準入力の方法

#標準入力の方法

1行の場合

“`php

$one = trim(fgets(STDIN));
var_dump($one);
“`

複数行の場合

“`php


string(2) “60”
[1]=>
string(2) “90”
}
*/
“`

trim()で囲っているのは余分な改行や余白をなくす為にしようしている(必ず必要なものではない)

元記事を表示

Laravelアプリでログイン後、直前のページに遷移したい

# Laravelでログイン後、直前のページに遷移したい

#目次
[1.デフォルトはHome画面](#1-デフォルトはhome画面)
[2.トレイトのAuthenticatesUsers.phpを見てみる](#2-トレイトのauthenticatesusersphpを見てみる)
[3.instended解析](#3-instended解析)
[4.今回やりたいこと](#4-今回やりたいこと)
[5.実装](#5-実装)
[6.レジスターも同じようにしたい](#6-レジスターも同じようにしたい)
[7.まとめ](#7-まとめ)

ロールごととか1箇所に指定するのはやったことありますが、動的に変化させるにはどうしたらいいかわからず調べたことをまとめます。

ログイン後のページ遷移をデフォルトのHOMEや設定したページだけでなく、例えばカート機能でいざ決済する時にログインを促したりした場合、ログイン後は「そのページに戻ってきたい場合」などありますよね。

※Laravel7で動作確認
※参考記事
[【Laravel】ログインした後、固定ページに飛ばさずにログインボタンを押した画面に戻

元記事を表示

Laravel ローカル開発環境を構築( Laradock 編)

# 今回作成する環境構成

|名前 |バージョン|
|– |–|
|PHP |7.3.27|
|Laravel |8.32.1|
|Laradock |v11.0 (2020/06/18)|

* VSCode のプラグイン
* PHP Debug
* PHP IntelliSense

![laradock.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59081/c693ace2-0f5b-79a8-e3aa-d3c1ebe587a3.png)

# まずは Web サーバーを準備

ここで登場するのが `Laradock` です。公式には以下のように記載があります。
> Laradockは、Docker用の完全なPHP開発環境です。
> さまざまな一般的なサービスをサポートし、すべてがすぐに使用できるPHP開発環境を提供するように事前構成されています。

本当に[いろいろなコンテナ](https://laradock.io/introduction/#s

元記事を表示

PHPをherokuでデプロイする!(4)Composerのインストールとデプロイの実行

#はじめに
PHPをherokuでデプロイする方法、前回まででデータベースを整えたので、今回はいよいよデプロイするために最終準備にうつっていきます!

#Composerのインストール
デプロイするための最後の準備として、Composerのインストールが必要となります。このComposerというのはPHPのパッケージ管理を行うツールであり、フレームワークを利用せずにPHPのみで作成している場合には、デプロイするために必要なソフトウェアが入っているため、新たにインストールする必要があります。

それではインストールの方法について説明します。ターミナルでデプロイしたいアプリのディレクトリにアクセスしましょう。
そして以下のように入力しましょう。

“`
$ touch composer.json
“`

このように入力すると、composer.jsonのファイルが作成されます。もちろん、composer.jsonというファイルを直接デプロイしたいアプリのディレクトリ内に作成しても構いません。その後エディタでcomposer.jsonを開きましょう。

“`
{
“requir

元記事を表示

Laravel+Guzzleを使用してAPIトークンを取得する方法

こんにちは、くりぱんです。

## この記事で実現できること
– Guzzleのインストール
– Laravel+GuzzleでAPIトークンの取得

## 説明
今回はPHPのHTTPクライアントであるGuzzleを使用して、とあるAPIのトークンを取得していきたいと思います。

## 開発環境
– Laravel: 6.2
– Guzzule: 7.2

## 実装の流れ
1. Laravelプロジェクトの作成
1. Guzzleのインストール
1. 日本時間にする
1. データベース設定
1. Route
1. Controller
1. View

## 実装
### 1. Laravelのプロジェクトの作成

“`bash
$ composer create-project –prefer-dist laravel/laravel testAPI “6.*”
“`
`testAPI`というLaravel6のプロジェクトが作成されます。

### 2. Guzzleのインストール

“`bash
$ composer require guzzlehttp/guzzle

元記事を表示

PHP/MySQLで作ったポートフォリオの振り返り

#初めに
開発環境はmacOSで
PHPのバージョンは7.3を使用しています。
あくまで、アウトプットを目的として書いた記事なので、理解しにくい点、間違った内容があるかもしれません。ご容赦ください。

##ポートフォリオについて
名前は『BookList』というアプリで、本のECサイトという設定で開発しました。
ECサイトは、CRUD機能だけでなく、より便利に理想的なものを作ろうとすると、
たくさんの機能が追加でき、すでに世の中にお手本となるフリマサイト、ECサイトがたくさんあるので自分もECサイトの開発に挑戦してみたいと思いました。

##アプリの機能一覧

|No|機能|機能について|
|:—:|:—:|:–:|
|1|新規登録機能||
|2|ログイン機能||
|3|ゲストログイン機能|新規登録しなくても、予め用意されているユーザー|
|4|パスワードのハッシュ化|[この機能は記事にまとめました](https://qiita.com/tom111/items/e2c4b7572814f921dddb)|
|5|商品の出品機能|商品の状態、種類、画像、タイトル、値段、著者

元記事を表示

【未経験者】PHPとLaravelそれぞれで類似ポートフォリオ作ってみた

# はじめに
こんにちは、おーもとと申します。エンジニアに転職をするため学習している初学者です。
私は車が好きで、「近年の若者の車離れ」という問題にフォーカスしたアプリを制作しようと思いました。
色々あって、生のPHPとLaravelの二通りの類似ポートフォリオを制作したので、記事にしてみました。
# 制作背景
若者が車を持たない理由には様々な理由があると思いますが、
「欲しいと思えるほど魅力を感じる車に出会っていないからなのでは?」
と思い、
・かわいいやかっこいいというスタイル
・大きさ
・国産か外車か
・アウトドアや街乗りという用途
これらの項目に当てはまる車を、結果として表示するアプリを制作することにしました。
(これらの特徴は全て私が定めているため、投票などにより特徴を決める機能をつけたいです)

# 11月 PHPでアプリ開発
10月からPHPの学習を始めていたので、そのアプリはPHPで制作しました。
カーセンサーAPIを使用して、車の情報を取得します。
解説動画:https://www.youtube.com/watch?v=ZXbgUtjxKM8
![スクリーンショット

元記事を表示

Docker,PHP,MySQLで構築した環境におけるDBホスト名の調べ方

以下の記事を参考に、Docker,PHP,MySQLの開発環境を構築した。

[PHP]DockerでPHP, MySQL(MariaDB), nginxを使ったローカル開発環境を構築する

記事の手順にしたがって開発環境は構築できたのだが、mysqliでDBに接続する際に、ホスト名が分からない事態に遭遇。
ホスト名は、DBに接続して以下のコマンドを入力する事で確認できる。

“`mysql> show variables like ‘hostname’;
“`

今回はDocker環境なので、DBコンテナに入ってから上記コマンドを入力する必要がある。
入力するコマンドは以下の通り。

“`
// DBコンテナに接続
docker-compose exec db bash

// DBに接続
root@2918fd6815ab:/# mysql -u root -p
→ パスワードを入力

// ホスト名を表示
mysql> show variables like ‘hostname’;
“`

以上のコマンドで、ホスト名を確認できる。

元記事を表示

【PHP8.1】PHPで簡単に非同期処理を書けるようになる

PHPは長きにわたり同期的、すなわち、あらゆる処理を上から順に実行していくというスタイルを取ってきました。

しかしたとえば、複数のURLからデータを取ってきて結果をまとめたいといった場合、時間のかかるHTTPリクエストは同時に投げたいですよね。
この用途には[Guzzle](https://github.com/guzzle/guzzle)というライブラリが存在し、これを使えば同時にリクエストを投げられます。
しかし、ではHTTPアクセスとDBアクセスを同時にやりたい場合は?
時間のかかる計算を裏でやりたい場合は?
などと考え始めると、こういった個別のライブラリでは対処しきれません。

ということで汎用的な非同期処理を[PHPで書けるようにするRFC](https://wiki.php.net/rfc/fibers)が提出されました。

# PHP RFC: Fibers

## Introduction

人類史上ほぼ全ての期間において、人々はPHPを同期的なコードとしてのみ書いてきました。
同期的に実行されるコードのみが存在し、そしてそれを同期的に呼び出します。
同期関数は、関

元記事を表示

OTHERカテゴリの最新記事