- 1. PHPerKaigi 2021 スライドまとめ
- 2. PHP5上級試験/準上級試験の上級合格に挑戦(13) プログラミングPHP第3版 1章〜2章
- 3. AWS DynamoDBに接続する
- 4. 【動かして学ぶ!Laravel開発入門】原稿は3年間の授業で積み上げた資料が基に (動画あり)
- 5. 【laravel】`base table or view already exists 1050 table ‘users’ already exists`が出た時の、php artisan migrate:fresh以外の解決法
- 6. 【Laravel】「ヘルパ」PHP関数を使っていこう
- 7. Laravel学習、始めました。(Laravel、MySQL環境構築)
- 8. Google Blocklyを使って、ブロックの組立てた後、プログラミング言語(JavaScript,PHP, Python.. etc)を自動生成してみた
- 9. Laravelで作成したアプリをHerokuでデプロイしてみよう!# MySQL
- 10. 高校生がwebアプリケーションを作ってみた!
- 11. phpで西暦の配列を作る簡単なやり方
- 12. 【phpunit】テストを実行するたびにローカルDBがリセットされる
- 13. composer updateとcomposer installの違い
- 14. heroku run php artisan migrate した時のエラー
- 15. コピペで使える: PHPでYahooから為替レートを取得する方法
- 16. php artisan migrateがうまくいかず、MySQL 8.0を再インストール
- 17. SymfonyのOptionResolverの紹介
- 18. Route::postにするとなぜか「The GET method is not supported for this route. Supported methods: POST.」が出る。
- 19. Laravel はじめました [4. 基礎]
- 20. 【Laravel】ルーティングをグループ化する
PHPerKaigi 2021 スライドまとめ
※スライドは公開され次第追記します。
もし見逃しやリンク切れ等ありましたら、コメントや編集リクエストいただけると助かります!## PHPerKaigi 2021 とは
– 公式サイト https://phperkaigi.jp/2020
– 公式Twitter https://twitter.com/phperkaigi
– ハッシュタグ [#phperkaigi](https://twitter.com/search?q=%23phperkaigi&src=typed_query&f=live)PHPerによるPHPerのためのお祭り!
## 日時
3/26(金) 16:00 – 前夜祭
3/27(土) 10:00 – 本編1日目
3/28(日) 10:00 – 本編2日目## PHPerKaigi 2021 ブログリンク一覧
[PHPerKaigi 2021 ブログリンク一覧](https://fortee.jp/phperkaigi-2021/blog-link)
## PHPerKaigi 2021 スピーカー一覧
[PHPerKaigi 2021 スピ
PHP5上級試験/準上級試験の上級合格に挑戦(13) プログラミングPHP第3版 1章〜2章
タイトルの通り。
プログラミングPHP第3版で、黒本にはなかったところをまとめていきたい。# 1章PHPについて
+ PHP設定変更後はPHPは再起動が必要1)クロスプラットフォーム(複数の異なるプラットフォームで動作する)のGUIアプリケーションを作れるのは?
2)PHPが動作するOSで、Unix系を3つ答えよ
3)PHPが動作するWebサーバーを3つ答えよ
4)PHPが動作するDBを7つ答えよ
5)DBの抽象化やエラー処理といった一般的な作業をやるPHPコードを集めたライブラリとは?
6)PHPを初めて考案した人物は?また何年か?
解答
1) PHP-GTK
※なお、GUIはGraphic User Interface:画面操作の略。反対はCUI(Command User Interface)、すなわちコマンドラインからの操作のこと。
2)Linux,FreeBSD,Solaris
3)Apache,Microsoft IIS,Netscape/iPlanetサーバー
4)MySQL/PostgreSQL/Oracle/Sybase/MS-SQL/DB2/
AWS DynamoDBに接続する
# AWS DynamoDBに接続する
AWS DynamoDBを使用するWebサイトを開発するにあたって、
まずはサイトからDynamoDBに接続するための設定を行う必要がある。
いくつか方法があるようだが、マシンにAWSへの接続情報を持たせる方法についてメモ。ローカルに開発環境を作成するための備忘録。
## AWS認証情報の取得
まずは、AWSに接続するためのアクセスキー(認証情報)を作成し、保存する。1.AWS マネジメントコンソール にサインインし、IAM コンソールを開く。
2.ユーザー→認証情報→アクセスキーの作成をクリック
3.アクセスキーが生成され、表示されるのでコピペするかCSVダウンロードするなりして保存## 認証情報をサーバーに設定する
取得したAWSアクセスキーを、サーバーの環境変数に設定する。
AWS_ACCESS_KEY_ID:<取得したAccess key ID>
AWS_SECRET_ACCESS_KEY:<取得したSecret access key>以上で、Webサーバーへの認証情報の設定は完了!
DynamoDBにつながるように
【動かして学ぶ!Laravel開発入門】原稿は3年間の授業で積み上げた資料が基に (動画あり)
##◇自己紹介
はじめまして。著者、山崎です。『動かして学ぶ!Laravel開発入門』を書きました。####QiitaではこんなLaravel記事を書いてきました。
[更新!!Laravel6/7 (laravel/ui)でのLogin機能の実装方法](https://qiita.com/daisu_yamazaki/items/a914a16ca1640334d7a5)[Laravel8 : 新ログイン「jetstream」を早速試してみたメモ](https://qiita.com/daisu_yamazaki/items/607ea579a374c4187562)
[Laravel8 (laravel/ui)でのLogin機能の実装方法](https://qiita.com/daisu_yamazaki/items/b946594896179abcd203)
[Laravel DB.com 操作マニュアル。 〜コード書かずに超スピード開発(DEMO動画あり)〜
](https://qiita.com/daisu_yamazaki/items/068595670bdc
【laravel】`base table or view already exists 1050 table ‘users’ already exists`が出た時の、php artisan migrate:fresh以外の解決法
# はじめに
laravelでmigrationをタイポで間違えて、やり直した際に、`base table or view already exists 1050 table ‘users’ already exists`が出た際に、よくある解決法が、`php artisan migrate:fresh`でも、ローカルのDBをリセットしたくない!! って思いませんか。
そんな思いを持った私が見つけたもう一つの解決方法です!!ぜひ、`php artisan migrate:fresh`をせずに、マイグレーションを成功させましょう!
#前提
##環境
PHP 7.4.16
Laravel 6.20.17
mysql 8.0.23
nginx 1.18.0## 作りたいテーブル
`location_tagテーブル`| カラム名 | 型 | 外部キー |
| —- | —- | —- |
| id | int ||
| location_id | int |○ |
| tag_id | int |○ |## エラー文
【Laravel】「ヘルパ」PHP関数を使っていこう
今回はヘルパ関数について改めて触れる機会があったので
忘備録としてまとめておく。
公式を参考にしているのでより正確な解釈を知りたい方は
最後にリンクを載せてますのでそちらを御覧ください!##「ヘルパ」PHP関数とは
Laravelで定義されている便利なグローバル関数。
例えばよく使うものでいくと
`auth`や`old`、`env`あたりがすぐに触れるでしょうか。
ちなみに僕は上記の関数は使ってましたがグローバル関数としての認識をもって使ってませんでした。
極端に詳しく調べなくてもいいかと思いますが仕組みを理解して使うと
簡潔な実装につながるかと思うので機会があれば処理を追ってみるといいでしょう。##様々な関数
割とたくさんの関数があるのでよく使うものを纏めておきます。“`PHP
// 指定された変数の内容を表示し、スクリプトの実行を停止します。
dd($value);// 環境変数の値を取得します。取得できない場合はデフォルト値を返します。
env(‘APP_ENV’, ‘production’);// セッションに一時保持データーとして保存されている直前の入力
Laravel学習、始めました。(Laravel、MySQL環境構築)
###こんにちは!
ここ数日でphp、Laravelの学習をし始めました。
とりあえず環境構築関係から投稿していきます。先週に2日間くらいphpの基礎構文と、Laravel,Lumenドキュメントや色々なソースコードを拝見しました。
正直あまりわかっていませんが、細かくアウトプットするのも重要だと思い記事にしました。##目次
・[Laravel環境構築](#laravel環境構築)
・[MySQL環境構築](#mysql環境構築)
・[感想](#感想)#Laravel環境構築
####`Homebrew install`
まずphpをインストールするのにHomebrewが必要なので、入っていない方は下記コマンドでinstall。“`
/bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)”
“`
バージョン確認。“`
% brew -v
Homebrew 3.0.9
“`オッケーですね。
####`php inst
Google Blocklyを使って、ブロックの組立てた後、プログラミング言語(JavaScript,PHP, Python.. etc)を自動生成してみた
#### Google Blocklyとは?
– 2013年にgoogleにて、公開されたビジュアルプログラミングツールです。
– 様々なコンテンツがありますが、その一部を紹介します。ブロック組み立て後は、プログラミング言語(javascript, PHP, Python.. etc)を自動出力できるページです。
– 今回の利用したページ: [Blockly > Demo > Code Editor](https://blockly-demo.appspot.com/static/demos/code/index.html)#### 今回のお題
4桁の入力チェック#### 今回の処理のイメージ
![20210319182052.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/778930/a7d5a7bb-e71b-90bf-06c2-1e8d6f2a350f.png)#### 今回のブロック
1. 入力ウィンドウ
2. 三項演算子
3. 文字列の出力#### 今回組み立てたブロック
Laravelで作成したアプリをHerokuでデプロイしてみよう!# MySQL
## Herokuとは?
HerokuはPaaS(Platform as a Service)と呼ばれるクラウドサービスです。ハードウェア(サーバー)、OS、ミドルウェアからなるアプリケーションの実行環境を提供します。Herokuを使うことで開発者はアプリケーションの開発に専念することができます
[画像引用元](https://www.bmc.com/blogs/saas-vs-paas-vs-iaas-whats-the-difference-and-how-to-choose/)
## 前提
– HerokuにデプロイするLaravelのアプリケーションは準備しておいてください
– DBはMySQLを使用
– Dockerは使いません
– HerokuCLIをインストールしておく
– `$ heroku -v`でve
高校生がwebアプリケーションを作ってみた!
#はじめに
記事を見ていただきありがとうございます。
恐縮ですが実務・業界共に未経験のため設計や図に間違いがある場合、***優しく***教えていただけると幸いです。
執筆時は高校を卒業していますが、ほぼ高校生ということでお願いします。
高校生なりに頑張って作ったので見ていってください。
コストの関係上、**2021/4/20**まで公開します。
記事中にも記載はありますが、各リポジトリのURLをまとめておきます。
・[アプリケーション repo](https://github.com/naruse666/portfolio_app)
・[docker repo](https://github.com/naruse666/laravel_docker)
・[k8s repo](https://github.com/naruse666/k8s_laravel)
・[ポートフォリオ作品](http://ada323091392e46e7a37439821217fde-1183638593.ap-northeast-1.elb.amazonaws.com)(2021/4/20まで)#勉強期
phpで西暦の配列を作る簡単なやり方
備忘録
“`index.php
array_combine(range(2000,date(“Y”)), range(2000,date(“Y”)))
“`引用元
https://heppoko-room.net/archives/998
【phpunit】テストを実行するたびにローカルDBがリセットされる
#はじめに
phpunitを使ってテストを書いた際に、`テストを実行するたびにローカルDBがリセットされる`というバグにハマったので、解決方法を記録しておきます。#開発環境
PHP 7.4.16
Laravel 6.20.17
mysql 8.0.23
nginx 1.18.0#DB設定方法
ControllerTest.php に下記を追加“`
use Illuminate\Foundation\Testing\DatabaseTransactions;class ControllerTest extends TestCase
{
use DatabaseTransactions;
}
“`phpunit.xmlを下記にする
“`
composer updateとcomposer installの違い Laravelでの開発を進める上で、よく忘れるので備忘録です。
間違い等ありましたらご指摘ください:tea:## update
“`bash
$ composer update
“`* composer.jsonにより、各ライブラリを最新版に更新
* composer.lock生成
* composer.lockにはインストールした各ライブラリのバージョン情報が記載される。## install
“`bash
$ composer install
“`* composer.lockから記載のバージョンをインストール
* composer.lockが存在しない場合は、composer update
と同じ効果。## 使い分け
* composer updateはライブラリを最新版に更新
*composer install
はcomposer.lockに記載された特定のバージョンをインストールする## 個人的なベストプラクティス
### 開発“`bash
$ composer update
“`
heroku run php artisan migrate した時のエラー
# heroku run php artisan migrateした際のエラー
““
SQLSTATE[HY000] [2002] No such file or directory (SQL: select * from information_schema.tables
““
上記のエラーが発生しました。下記コマンドで、環境変数を確認します。
““
$ heroku run php artisan tinker>>> config(‘database.connections.mysql’)
““
““
=> [
“driver” => “mysql”,
“url” => null,
“Host” => “ホスト名”,
“Port” => “ポート番号”,
“database” => “データベース名”,
“username” => “ユーザ名”,
“password” => “パスワード”,
“unix_socket” => “/Applications/MAMP/tmp
コピペで使える: PHPでYahooから為替レートを取得する方法
多通貨を扱うサイトで必要な、為替レートをヤフーから取得する方法を紹介します。コピペで簡単に使えるので興味のある方はお試しください。
この方法は、現在私が1人で開発しているカメラの海外価格比較サイト [nukeni.com](https://www.nukeni.com) でも使用しています。
#具体的な方法
ヤフーファイナンスの以下のようなページをスクレイピングして為替レートを取得します。
https://info.finance.yahoo.co.jp/fx/convert/?a=1&s=JPY&t=USD#テスト環境
CentOS 7
PHP 7.3.9#事前準備
ヤフーのスクレイピングにはphpQueryという外部ライブラリを使用します。正規表現で取得してもいいのですが、こちらを利用した方がより簡単にスクレイピングできます。[こちらのページ](https://code.google.com/archive/p/phpquery/downloads)から最新バージョン([phpQuery-0.9.5.386-onefile.zip](https://storage.
php artisan migrateがうまくいかず、MySQL 8.0を再インストール
#環境
* M1 Mac macOS Big Sur 11.2.2
* MySQL 8.0.23 (Homebrew)
* PHP 7.3.24#失敗した手順
最初にHomebrewでインストールした後は、“`
brew install mysql
“`
####1. 権限を回避してMySQLの接続を行う
<エラー> ERROR 1045 (28000): Access denied for user ‘root’@’localhost’
[Qiita – MySQLインストール後、アクセス拒否 (Access denied for user ‘root’@’localhost’)](https://qiita.com/yummy888/items/25621bc1451f218e010a)
####2. 認証方式変更
<エラー> The server requested authentication method unknown to the client [caching_sha2_password]
[Qiita – FuelPHPでのMySQL接続時にThe se
SymfonyのOptionResolverの紹介
## はじめに
ビルダーパターンなどを使っていると、配列で様々なオプションを渡したくなる時があります。その時に、値の存在確認や、型のチェックなどをスマートにこなせるSymfonyのOptionResolver Componentの紹介です。## 問題提起
`Car`クラス、`Engine`クラス、`Tire`クラスの三つがあります。`Car`クラスは`Engine`と`Tire`のセッターを持ち、`Engine`と`Tire`はそれぞれ`int`型のパワーとサイズをセッターで受け取ります。
実装は以下の通りです。
“`php
engine = $engine;
}public function setTire(Tire $tire): void
{
Route::postにするとなぜか「The GET method is not supported for this route. Supported methods: POST.」が出る。
#目次
[1.何が起きた?](#何が起きた?)
[2.解決策はこれ!](#解決策はこれ!)#何が起きた?
Laravel8にて、アップロード画面のルート設定で以下の記述を書いたところ、タイトルのように「**The GET method is not supported for this route. Supported methods: POST.**」のエラーが。。。“`web.php
Route::post(‘ctrl.upload’, [CtrlController::class, ‘uploaded’]);
“`原因を探るが、どれを試してみても効果なし。
しかもLaravelのエラー画面が教えてくれる場所は「vendor/laravel/framework/src/Illuminate/Routing/AbstractRouteCollection.php:117」で、そこちゃうねん(多分)。
頭をひねること数時間、最後は
「うわ、こんなしょうもないことで。。。」
と原因に気づきました。そうは思ってもプロ
Laravel はじめました [4. 基礎]
※前回の記事は以下です
https://qiita.com/soso555/items/83de4dc95b49a42e85bd
# 概要
– 今回は [基礎](https://readouble.com/laravel/5.7/ja/routing.html) 編# 基本的なルーティング
– Webページのルーティングは “`routes/web.php“` に以下のように記載しましょう
– 引数は URI とクロージャ“`php
Route::get(‘foo’, function () {
return ‘Hello World’;
});
“`– 以下のように URI とコントローラ名称、メソッド名称でも定義できるよ
“`php
Route::get(‘/user’, ‘UserController@index’);
“`– API のルーティングは “`routes/api.php“` に記載しましょう
– URI に “`/api“` プ
【Laravel】ルーティングをグループ化する
# Laravelのルーティングをグループ化
“`web.php
group(function(){
Route::get(‘/’, ‘UserController@index’)->name(‘index’);
Route::get(‘/user/{id}’, ‘UserController@show’)->name(‘show’);
});
“`
LaravelにはRoute::nameというメソッド?が用意されているらしい。
Route::nameという記述をすることで、この中のルーティングはどこのコントローラーへのルーティングを定義しているのかをすぐに読み解くことができる。
要するに、可読性を高めることができる。