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

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

ボクとPHP・Laravel・Dockerとの約200時間

#始まりは突然に…
あれは、ある企業に面接したときの事でした。それまで、私はRubyでの開発を行っており、ポートフォリオもRailsで作成していました。その面接で、ポートフォリオの説明を行い面接終了時に次のようなお言葉を頂いた時から始まりました。
**あなたに課題を出します。それを期限を決めませんが行ってください。**とのことでした。課題とは以下の通りです。
[![Image from Gyazo](https://i.gyazo.com/d8831f7d2e8311d2bea7480b0cc4a1ed.png)](https://gyazo.com/d8831f7d2e8311d2bea7480b0cc4a1ed)
##:fire:それを成し遂げた理由:fire:
それは、至って単純な話です。
**やってみたい・挑戦してみたい**と思ったかです!
やりたいやってみせるという気持ちで望みました!

#で、一体何から着手したのか
プロセスは以下の通りです。
①プロゲートの初級(PHP基礎学習)

②ドットインストールPHPに関するもの全て(PHP基礎学習)

③ドットインストールDo

元記事を表示

ポートフォリオの解説投稿(自分なりのアウトプットです!!)

#自分が書いたコードを説明できないのは恥だよ!!
これは、あるYouTuberの言葉です。
確かにそうですよね…
はい、やります。やらせてください!
解説やらせてください!
てな感じで始めます笑
と、その前にこちらがポートフォリオの内容です。

#三部構成でいきます!
Controller・Model・Viewの三部構成で解説していきます。
主にTweetの内容からです。

###まずControllerから行きます!
“`php:app/Http/Controllers/TweetController.php
namespace App\Http\Controllers;
#namespaceとは、名前空間といい、こちらを使用してクラス被りをしないようにする。というもの。

use App\Models\Tweet;
use App\Models\Tag;
use App\Models\Comment;
#各種のModelを読み込む際の記述
use Storage;
use Illuminate\Support\Str;
#ストレージファイルの読み込む際の記述
use Inter

元記事を表示

パスからidを取得したい

#背景
dreddでapiテストを作成している。
テストデータを作成するときに使用するidを取得したい。
そのためにパスからidを取得する。

#環境
PHP 7.3.22

#末尾のidを取得する

“`
$path = ‘/users/30’;
$id = intval(basename($path));

var_dump($id);
“`

結果

“`
int(30)
“`

やっていること
basenaemでパスの末尾の文字列を取得する
intvalで整数型に変換する

#idがパスの途中にある場合
idが末尾になるようにパスから末尾の文字列をトリムすればいい

“`
$path = ‘/users/30/admin’;
$id = intval(basename(rtrim($path, ‘/admin’)));

var_dump($id);
“`

結果

“`
int(30)
“`

#ちょっと沼ったのでメモ
basename()の第2引数にsuffixを指定できる。
これを指定することで、指定した文字列を除いて末尾の文字列を取得できる。
参考
h

元記事を表示

【PHP】GET・POST サーバー 作成

今回はphpのget・postサーバーの作成について書きます。
正直、今回の記事は自身のメモとしての意味合いが大きいです。
似たようなことが書かれた記事は多いですし、コードの内容も多くないため簡潔に書いていこうと思います。
##実装環境
今回はそんなに手間をかけるつもりはないため、xamppを使用します。
VSCodeを使用してコードを書きましたが、コマンドでビルドが必要だとかいうこともないので、テキストエディターは何でも良いです。
##GET・POST サーバー
“`index.php

元記事を表示

【2021/03】DockerでPHPのWebアプリ開発環境(スクラッチ)を構築する。

執筆日:2021/03/27

プログラミング歴半年の俗に言う駆け出しエンジニアです。
これまでRubyで個人開発をしてきましたが、先日就職が決まり、業務でPHPを触る事になりました。

そんなわけで、Dockerを用いて開発環境を構築したのでメモを残します。

##参考

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

上記記事では各設定の詳細な解説もされているので併せてご確認ください。

##要件

・Mac OS Catalina(10.15.7)
・PHP 7.2
・MySQL 5.7
・NginX(latestイメージを使用)
・phpMyAdmin(latestイメージを使用)
・Docker,docker-compose
・FWを使わずスクラッチでの開発を想定

現実ではスクラッチで開発するケースは少ないと思うので、あくまでローカルでの練習用環境構築です。
Macユーザーであれば、この記事通りの手順で(コピペでも)開発環境を構築できると思います。

間違えている点やtypo等あればお手柔らかにご指摘いただけると幸い

元記事を表示

PHPerKaigi2021参加レポート

# はじめに
[PHPerKaigi2021](https://phperkaigi.jp/2021/)の参加レポートです。
前夜祭、1日目、2日目と全て参加した中で特に面白かったセッションとかとかを備忘録的な感じで。

# セッションの感想
## [PHPerでもわかる!実戦Webアクセシビリティ](https://fortee.jp/phperkaigi-2021/proposal/2ad09067-1c9f-41ce-8574-7abb06f65ce4)
WEBアクセシビリティを向上させる事に対する基本的な知見を知れました。
登壇者さんが言われていたゴールの”Webアクセシビリティを完全に理解した”という状態になれたと思います。
普段コーディングする時に、マシンフレンドリーとかHTMLの標準のコーディングとかを意識していないので、これから意識していこうという気持ちになりました。

## [某OSS blogのリファクタを進めつつ、コードについて話す](https://fortee.jp/phperkaigi-2021/unconference/view/cec104ba-f3

元記事を表示

PHPerKaigi2021で学んだセッション管理について

PHPにおいて、セッションを使うには、このように使うのが一番簡単。

“`php:index.php

元記事を表示

idiorm.php でテーブルのカラムを取得する

“`php

$record = ORM::for_table(“table_name”)->find_one();
$columns = array_keys($record->as_array());
“`

元記事を表示

MAMP環境でtimezoneが反映されない問題の解決過去記事による罠

## タイムゾーンが反映されない問題について
### 疑う箇所
– 編集しているphp.iniファイルは合っている?(php.infoから確認できます)
– コメントアウトされてない?
– 編集後に再起動した?

## 本題
「PHP MAMP タイムゾーンが反映されない」などで検索すると同じような解決策がずらりと並びます。
ですが今回の問題は上記にあげた疑う箇所によるものではないです。
というのも過去記事にもMAMPのデフォルトでも同じように以下の記載になっています。

“`
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
; date.timezone = “Europe/Berlin”
“`

これを

“`
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone =

元記事を表示

laravel8 Auth認証をしていないと表示できないページを作成する

# 目的

– Auth認証を行っていないと表示できないページを実装する方法をまとめる

# 方法

– ルーティングに記載するだけで実装が可能である。
– 下記のようなルーティング情報が記載されていたとする。

“`アプリ名ディレクトリ/routes/web.php
Route::get(‘/top’, [TopController::class, ‘index’])->name(‘top.index’);
“`

– 下記のように記載することで当該ページが認証していないと表示できないページにする事ができる。

“`アプリ名ディレクトリ/routes/web.php
Route::get(‘/top’, [TopController::class, ‘index’])->middleware([‘auth’])->name(‘top.index’);
“`

元記事を表示

[Laravel]キーワードが含まれて”いない”レコードをDBから取得する方法

# キーワードが含まれていないレコードをDBから取得する方法
“`php

//Eloquent Model を使用する形
$users = User::where(‘column名’, ‘not like’, ‘%’.$keyword.’%’)->get();

//Eloquent Model を使用しない形
$users = DB::table(‘users’)->where(‘column名’, ‘not like’, ‘%’.$keyword.’%’)->get();

“`

# 一言
[Laravel公式ドキュメント](https://laravel.com/docs/8.x/eloquent)にも[日本語翻訳版ドキュメント](https://readouble.com/laravel/8.x/ja/eloquent.html)にもないため記事化しました。
sql知ってる人からすると当然こうなるのでドキュメントにはないのでしょうね。

元記事を表示

30代未経験でPHPエンジニア(phper)になるなら

## 著者の簡単な紹介
– SESから自社サービスに転職したバックエンドエンジニア
– Laravel好きからのRails好きへ
– 30代で経理からの転職した

## 本やネットで基本的なものを学ぶ

– 変数
– 配列
– if
– foreach…

おすすめサイト
詳しくわかりやすくさらに、サイト全体がかわいいのでとてもよいです。

GRAYCODE
[PHPプログラミング \| GRAYCODE](https://gray-code.com/php/)

## laravelを学ぶ
こちらの本で僕は勉強しました。
こちらを教科書により知りたいことをネットで調べました。

[PHPフレームワーク Laravel入門 \| 掌田津耶乃 \|本 \| 通販 \| Amazon](https://www.amazon.co.jp/PHP%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AF-Laravel%E5%85%A5%E9%96%80-%E6%8E%8C%E7%94%B0%E6%B4%A5%E8%80%

元記事を表示

Laravel 8.xでバリデータを作成する

※PHPフレームワークLaravel入門 第2版を進めていたところ、バリデータを作成するフェーズでエラーが発生したので備忘録として記述しております。

# エラー内容

“`php
‘フォームを入力:’]);
}

public function post(Request $request)
{
$validator = Validator::make($request->all(), [

元記事を表示

[Laravel] LINE ログインAPI,LINE Messaging APIを使ってみる。

# [Laravel] LINE ログインAPI,LINE Messaging APIを使ってみる。

## 今回の題
LINEログイン、LINE MessagingAPIをLaravelにて実装しました。
アウトプットとして残します。

##ログインAPI
###チャネルIDとチャネルシークレットの取得
[LINE Developers コンソールのログイン](https://account.line.biz/login?redirectUri=https%3A%2F%2Fdevelopers.line.biz%2Fconsole%2F “”)

1. プロバイダー作成
![スクリーンショット 2021-03-28 9.40.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1247585/f0ed1c9e-e16e-f4b2-fcc1-e4b612e8939e.png)

2. チャネル作成(LINE ログイン)
![スクリーンショット 2021-03-28 9.42.02.png](https:

元記事を表示

血圧管理システムのWebシステムをデザインしました

血圧管理システムのWebシステムをCSSでデザインしました。
以前の味気ないシステムがいい感じのシステムに変わりました。
昨日のオフラインミーティングでデザインを教えていただいたアドバイスを生かしました。
今後の課題はAWSクラウドに載せる部分になります。

元記事を表示

Carbonチートシート

# [Carbon](https://carbon.nesbot.com/)
日時の操作に便利なライブラリ
[Illuminate\Support\Carbon](https://laravel.com/api/8.x/Illuminate/Support/Carbon.html) は [Carbon\Carbon](https://github.com/briannesbitt/carbon) を継承したクラスだけど昔ほど差は無い

## Carbonをインストールする
“`
composer require nesbot/carbon
“`

## Carbonを作る
“`php
$carbon = new Carbon(); // 2021-03-28 08:17:02.064073
$carbon = new Carbon(‘today’); // 2021-03-28 00:00:00.0
$carbon = new Carbon(‘2021-03-28’); // 2021-03-28 00:00:00.0
$carbon = new Carbon(‘2021-03-

元記事を表示

staticをインスタンス化した後から指定するとどうなるか

#はじめに
最近、“`static“`がインスタンス化したものにも影響を及ぼすということを知らずに使ってしまい、その挙動に戸惑ったことがあるのでそのことについて書きたいと思います。
この記事を読めば“`static“`の理解が少し深まります。

まず、以下のような課題があったとします。

Q. 以下の仕様を満たし、次の出力結果が出るようにコードを追記せよ。※環境は“`PHP7.4“`とします。

出力結果

“`
田中さんは日本人です。
ジュリーさんはアメリカ人です。
黄さんは中国人です。
ミュラーさんはドイツ人です。
“`

“`php

元記事を表示

Macでバッチファイル(commandファイル)を作ってダブルクリックのみでビルトインウェブサーバを起動させる方法

# ビルトインウェブサーバについて

[プライベートIPアドレスの用途](https://qiita.com/rimorimo/items/9ee259ffb492a073884a#%E3%83%97%E3%83%A9%E3%82%A4%E3%83%99%E3%83%BC%E3%83%88ip%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%81%AE%E7%94%A8%E9%80%94)参照.

# プライベートIPアドレスの取得について

[ターミナル上でプライベートIPアドレスを調べる方法 1](https://qiita.com/rimorimo/items/9ee259ffb492a073884a#%E3%82%BF%E3%83%BC%E3%83%9F%E3%83%8A%E3%83%AB%E4%B8%8A%E3%81%A7%E3%83%97%E3%83%A9%E3%82%A4%E3%83%99%E3%83%BC%E3%83%88ip%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%82%92%E8%AA%BF%E3%

元記事を表示

Macのターミナル上でプライベートIPアドレスを調べる方法

# 最も簡単にプライベートIPアドレスを調べる方法

わざわざターミナルでコマンドを入力しなくても,**システム環境設定>ネットワーク>[ 詳細 ]ボタン押下>TCP/IPタブ>IPv4アドレス**の欄から簡単に調べる事ができるが,**ネットワーク系のスキルを向上させるためにはやはり最低限のターミナルコマンドを使いこなせなければならない**というのが筆者の持論である.

![private_ip_address.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478088/5ed23d60-4843-187c-665e-39c342feb6e4.png)

# ターミナル上でプライベートIPアドレスを調べる方法 1

macOSにおいてネットワーク状況を調べるための有名なコマンドと言えば`ifconfig`.Windowsでいうところの`ipconfig`に相当するものである.

“`bash
$ ifconfig
lo0: flags=XXXX

元記事を表示

Web API開発をするなら、ドキュメントは自動生成にしておこう!(CakePHP編)

### この記事は何?
– [PHPerKaigi2021](https://phperkaigi.jp/2021/)で発表するスライドの補足資料
– 発表で紹介したサンプルコードと同じものを作成する手順のまとめ
– Swaggerの導入分だけ読みたい方は[こちら](https://qiita.com/AkitoTsukahara/items/5bab895b7b9943b0654f#swagger%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B)
– この記事を作成する上で参考にさせていただいた記事。(丁寧な解説でとても分かりやすかったです。🙇)
– [CakePHP4 で Swagger3 を使って API ドキュメントを作る](https://qiita.com/katsuhiko/items/22511d5ed5eff3e4616a)
– 作成するAPIは[CakePHPクックブックのREST API](https://book.cakephp.org/4/ja/development/rest.html

元記事を表示

OTHERカテゴリの最新記事