- 1. Laravel5.6以降のログの機能をちょっと調べた
- 2. Laravel Socialiteを使用してソーシャルログイン を実装する
- 3. Laravel + Vue.jsの導入方法
- 4. Dockerコンテナを止めずにapache2を再起動する方法【php7-apache】
- 5. PHPとは(入門します)
- 6. 不動点コンビネータを用いた無名再帰関数の実行まとめ
- 7. 【Laravel】MySQL設定メモ
- 8. CORS問題の対応の仕方をミスってた話
- 9. FuelPHPにおいてtimestampで範囲を指定して取得するとき注意点
- 10. Laravelでデータの作成、削除 save() create() delete()
- 11. なぜ、ログイン実装後に Register で 「Oops VFS connection does not exist」と表示されるのか
- 12. エラー「ERROR: The Compose file ‘./docker-compose.yml’ is invalid because:」の対処法
- 13. PHPフレームワークLaravelの使い方
- 14. 【PHP8.0】非厳密な比較演算子`==`の挙動が今さら変更になる
- 15. LaravelでWebSocket
- 16. ニートがPHPで求人サイト(Webアプリ)を作ってみた
- 17. LINE Messaging APIを使って、ポケモンの弱点を教えてくれるBotを作る【Laravel・初心者向け】
- 18. カリー化チートシート
- 19. Laravel Excel を用いてCSV出力する手順
- 20. Laravelで好きなCSSフレームワークを使う
Laravel5.6以降のログの機能をちょっと調べた
# 目的
– Laravelのログに関する情報を調べてみたので簡単にまとめる
# 実施環境
– ハードウェア環境
| 項目 | 情報 |
| — | — |
| 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/adaaa
Laravel Socialiteを使用してソーシャルログイン を実装する
Laravel Socialiteを使用してソーシャルログインでの登録・ログイン機能を実装していきます。
# Googleの設定
[GoogleAPIs](https://console.developers.google.com/cloud-resource-manager?pli=1)
上記にアクセスして、『プロジェクトを作成』を選択する### 新しいプロジェクト
プロジェクト名: 適宜
場所: 組織なし
を入力して『作成』を押下### Google Cloud Platform
利用規約をチェックし『同意して続行』を押下### 左上ハンバーガーメニュー/『APIとサービス』/『OAUTH同意画面』を選択する
### OAuth同意画面
UserType: 外部を(適宜)選択し『作成』を押下アプリケーション名: 適宜
『保存』を押下### サイドメニュー/『認証情報認証情報を作成』/『OAuthクライアントID』を選択する
### OAuthクライアントIDの作成
アプリケーションの種類: 『ウェブアプリケーション』をチェック
名前:適宜
承認済みのリダイ
Laravel + Vue.jsの導入方法
LaravelのBladeにVueコンポーネントを組み込む方法をまとめます。
## 環境
+ laradock
+ php: 7.3
+ Laravel: 7.2## Vue.jsをインストールする
“`php:laravel/package.json
“vue”: “^2.6.11”,
“vue-template-compiler”: “^2.6.11”
“`“`
$ docker-compose exec workspace npm install
“`## Vueコンポーネントを作成する
試しにハートボタンを作成します。“`laravel/resources/js/components/SampleLike.vue
10
Dockerコンテナを止めずにapache2を再起動する方法【php7-apache】
## 結論
下記コマンドでreloadさせれば、変更を有効化できます。
“`
$ /etc/init.d/Apache2 reload
“`## 環境
“`
Docker for Windows 19.03.8
DockerImage php:7.4-apache
“`## 背景
Dockerでローカル環境構築中に困りました。
普段CentOSで開発していると、設定ファイル変更後に有効化させる際、下記のコマンドをたたきたくなるところですが、
この場合コンテナごと停止してしまいます。“`
systemctl apache2[httpd] restart
“`コンテナを止めずに設定変更の有効化をするには下記のコマンドをたたきましょう。
“`
$ /etc/init.d/Apache2 reload
“`
PHPとは(入門します)
PHP(ピー・エイチ・ピー ハイパーテキスト プリプロセッサー)を勉強しようと思います。
なぜ、この言語なのか。なぜやろうと思ったか。興味を持ったか。
まずそれを自分の中でアウトプットする意味で、この記事に書いて、勉強を進めて行こうと思います。スクールでHTMLとCSS(Haml、SCSS)、JavaScript,Ruby,Railsなどを学びました。それらを利用して、簡単なアプリ開発を行いました。結果、僕が一番興味を持ったのは、フロントエンド側の実装工程です。
PHPでは、HTMLやJavaScriptなどでは叶えることない動きを叶えることができます。
まずは、環境構築をしてから、progateなどを用いていく予定です。
不動点コンビネータを用いた無名再帰関数の実行まとめ
諸般の理由で『[Pythonのlambda式を用いたラムダ計算の基礎表現](https://qiita.com/ytaki0801/items/fb4edeba41ff1bfb4b52)』を書いた後にHaskellに触れたところ,無名再帰関数を実行する不動点コンビネータ`fix`がとんでもなく簡単に書けたため,同じ方法で他のプログラミング言語でもできないか試したところ,これまたあっさりできたので,まとめメモ的に新しく記事にした.
このような内容がQiitaや書籍,ネット上に星の数の更に星の数乗ほどあることは承知しているが,この手の話はYコンビネータが大きな割合を占めており(実際,元記事でも取り上げている),関心のある人々の数多ある参考資料のひとつ程度に捉えてもらえると幸いである.ツッコミ,編集リクエスト歓迎.
#不動点コンビネータの定義
Haskell,Scheme,Python,Ruby,JavaScript,Scala,Perlでの実行例を述べる.なお,不動点コンビネータとは,$f(g(f))=g(f)$が成り立つ関数$g$を指す.この記事では,Haskellの呼称である`f
【Laravel】MySQL設定メモ
# MySQLにデータベースを作成する
“`terminal:ターミナル
$ mysql -u rootmysql > CREATE DATABASE アプリケーション名;
“`# laravelファイルの.envを修正する
“`php:.env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=[アプリケーション名]
DB_USERNAME=root
DB_PASSWORD=
“`
CORS問題の対応の仕方をミスってた話
フロントエンドとサーバサイドプログラムの連携をRestっぽい感じでやるようになって久しいが
ここに来て結構なポカミスをやったので備忘録として。フロントには固定値のjsonを返すだけのダミーAPIを作って実装を進めてもらい
バックエンドはprod用としてそのダミーが動的なものになるように実装、最終的にダミーと差し替え
みたいな流れで制作をしている。で、バックエンドはphpを使うが色々ごちゃごちゃやった後に
“`php:test.php
色々やる〜
header(‘Content-Type: application/json’);
echo $json;
exit;
“`としてjsonを出力するのがセオリーである。
フロントはtest.phpをエンドポイントとしてjsとかで実行するわけだが
大体いつも問題になるのがCORSである。セキュリティリスクを追々考えなければと思いつつApache側で
“`apache
Header set Access-Control-Allow-Origin *
“`レスポンスヘッダに全てのドメインからアクセスOK!!を付けている
FuelPHPにおいてtimestampで範囲を指定して取得するとき注意点
#概要
`created_at` や `updated_at` などに使われる `timestamp` 型は非常に便利で、不等号で簡単に比較ができるのですが、気を付けないとうまく動いてくれません。すごく基本的なことですが、場合によっては適当に書いても正常に動いてしまうことがあるので意外と気づきにくい部分だと思います。#本題
デフォルトの `unixtime` で扱っている場合
e.g.)`1596447140` など
はそのまま使えて、“`unixtime.php
$query = \DB::select()
->from(‘table_name’)
->where(‘created_at’, ‘>’, strtotime(‘-1 week’))
->execute();
“`のように書くだけで比較ができます。この場合は1週間前よりあとに作られたレコードだけ取得します。
一方、違うフォーマットで扱っている場合
e.g.)`2020-08-03 18:32:20` など
は注意が必要で、フォーマットも合わせてあげる必要があります。例の場合は、“`anyformat
Laravelでデータの作成、削除 save() create() delete()
####save:テーブルを保存
“`php3
$user = new App\User //モデルUserクラスのオブジェクト$userを作成
$user->name = “toto” //$user->nameプロパティに “toto”を代入
$user->save() //saveでDB内Userテーブルに新規保存できる。
“`####create:テーブル作成
マスアサイメント対策(次項目でで説明)
をmodelに記入する
app/User.php“`php3
protected $fillable = [“name”,”body”];
“`
と記入し、リクエストから変更できるカラムをname,bodyのみに制限する。“`php3
//DB内にUserを直接作成
App\User::create([“name”=>”piyo”, “address”=>”tokyo”]);
“`
マスアサイメントを忘れていると、MassAssignmentExceptionエラーが起こる。####マスアサイメント
なぜ、ログイン実装後に Register で 「Oops VFS connection does not exist」と表示されるのか
#なぜ、ログイン実装後に Register で 「Oops VFS connection does not exist」と表示されるのか
このエラーの背景としては、
私は、Laravel で Auth 機能を用いてログイン機能を実装するところでした。
問題なく 「web.php 」と「Routing」と「Controller」はしっかり書けていました。しかし、
https://gyazo.com/bdf3f4c82bc15c334adb050a5723b634
このように表示される模様。エラー内容は
「Oops VFS connection does not exist」
ふむ。
直訳すると「おっとっと VFS接続が存在しません」
おっとっとじゃないわw 泣きたいわw
多分、接続サーバー先の問題とかそう言った類の問題な気がすると思いました。
なぜなら、その証拠に、ログインしないで実際に他の階層に降りようとすると、
Auth の設定で Login の画面に強制転送さられるからです。この事件に陥る人が他にもいるのではと思い、
ネットで探していたところ、似たような
エラー「ERROR: The Compose file ‘./docker-compose.yml’ is invalid because:」の対処法
“`
ERROR: The Compose file ‘./docker-compose.yml’ is invalid because:
services.php.volumes contains an invalid type, it should be an array
“`
`docker-compose up`した時に上記のようなエラーが出た場合の対処法です。## 原因はYaml文法エラー
エラー内容の`services.php.volumes`の部分の文法が不正ということです。
### Before : 不正な文法
“`(不正文法)docker-compose.yml
version: ‘3’
services:
nginx:
image: nginx:latest
ports:
– 8080:80
volumes:
– ./nginx/nginx.conf:/etc/nginx/conf.d/default.conf
– ./wwww/html:/var/www/html
depend
PHPフレームワークLaravelの使い方
# 環境構築
・[LAMP+Redis環境を超短手数で構築する](https://qiita.com/toontoon/items/0ade09a5fb3f70fd0c0d)
・[Composerをインストールする](https://qiita.com/toontoon/items/62a42ca2d05735a8c082)
・[eclipseでPHPの開発環境を構築する。デバッグでブレークポイントを付けてステップ実行できるようにする](https://qiita.com/toontoon/items/f7340a259b7135952ac3)# 実装
・[eclipseでLaravel開発環境を構築する。デバッグでブレークポイントをつけて止める。(WindowsもVagrantもdockerも)](https://qiita.com/toontoon/items/76fa7f8845b20776077c)
・[Laravelのテンプレートエンジンを使う](https://qiita.com/toontoon/items/2d6d3d6c88fa61a0c2e3)
・[Larave
【PHP8.0】非厳密な比較演算子`==`の挙動が今さら変更になる
推移律?
そんなものはこの世の果てに置いてきた。“`php:PHP7
“true” == 0;
0 == “0”;
“true” == “0”;
“`結果は順にtrue、true、falseです。
これがPHP7までの非厳密な比較(等価)演算子だったわけですが、まあおかしいよねってことで、この挙動がPHP8.0で変更になることになりました。
よもや今さら基本中の基本である比較演算子の動作を弄ってくるとは思わなかったぞ。以下は[Saner string to number comparisons](https://wiki.php.net/rfc/string_to_number_comparison)の日本語訳です。
# PHP RFC: Saner string to number comparisons
## Introduction
`==`やその他の非厳密な比較演算子を用いた文字列と数値の比較は、現在は、文字列を数値にキャストし、その後整数か浮動小数の比較を行っています。
この結果、多数の不可解な結果が得られますが、中でも注目すべきは`0 ==
LaravelでWebSocket
# 目次
Laravelの記事一覧は下記
[PHPフレームワークLaravelの使い方](https://qiita.com/toontoon/items/c4d0371e504c37f6576e)# Laravelバージョン
動作確認はLaravel Framework 7.19.1で行っています# 前提条件
[eclipseでLaravel開発環境を構築する。デバッグでブレークポイントをつけて止める。(WindowsもVagrantもdockerも)](https://qiita.com/toontoon/items/76fa7f8845b20776077c)
本記事は上記が完了している前提で書かれています
プロジェクトの作成もapacheの設定も上記で行っています[LaravelでDIを使う](https://qiita.com/toontoon/items/ebf53e4053be6f663730)
本記事は上記で作成したフォルダとファイルを使用します[LaravelでRedisを操作する](https://qiita.com/toontoon/items/02
ニートがPHPで求人サイト(Webアプリ)を作ってみた
技術記事ではなく、「作ったものを共有する」ライトな記事です。
# 経緯
小学5年生でゲームにハマる
↓
ニートになって暇人
↓
アプリ作ってみよう、みたいな# 公開する理由
頑張って勉強されている方に少しでも参考になればいいなと思ったからです。
また、リリース後はしっかり運用・保守していく予定なので、エンジニアさんからフィードバックをもらえるかも?という下心もあります:rolling_eyes:# 作ったもの
地元「釧路」限定の求人サイトです。
※釧路:北海道の避暑地であり、魚が美味しい海沿いの町■サイトURL
[https://job-cinema.com](https://job-cinema.com)
■github
[https://github.com/haruyaono/jobcinema-prod](https://github.com/haruyaono/jobcinema-prod)ただ、サイトURLがリンク切れしていたらごめんなさい。
ニートは節約せずに生き残れないので、AWSのリソースを止めています。代わりにドキュメントにまとめております
LINE Messaging APIを使って、ポケモンの弱点を教えてくれるBotを作る【Laravel・初心者向け】
## 1.はじめに
先日、久しぶりにポケモンの対人対戦をやっていたときに、
**「相手(ポケモン)の弱点何???」**
といった疑念を抱き、対戦時間と戦略を見失いモチベーションが下がってしまいました。
見た目だけだとタイプが分からないポケモンもいるし、タイプが2つあるポケモンもいるとなると覚えられない、、と悩んでました。
これって対戦初心者にありがちでは・・・
と思ったのがきっかけで、これを解決したいと思い
**簡単・気軽・素早く**弱点を知れるもの作ってみよう!!
と考えて実際に作ってみました。
本記事は、以下のようなコンセプトの記事になります。
・製作の経緯と意図
・簡単な製作の手順とコードのポイントの説明
・初心者向け(今後外部APIを使用したいと考えている方)
といった記事になります。
**注意**
実際には、とくせいや環境変化によってバトル戦略は変化すると思うので、タイプ相性だけではガチ対戦者さんにとっては不向きかと思います。あくまで、LINE botを作ってみよう!という趣旨です。また、実際のゲームに基づいていますので、掲載において不適切
カリー化チートシート
拙作『[不動点コンビネータを用いた無名再帰関数の実行まとめ](https://qiita.com/ytaki0801/items/596efbbcb07d38630bc9)』の補足説明として書き始めたところ,カリー化関数を記述・利用するための独立したチートシートとした方が少なくとも約1名(自分自身)には役立ちそうだったので,新しく記事にした.なお,カリー化してくれる関数の定義[**ではない**](#%E3%82%AB%E3%83%AA%E3%83%BC%E5%8C%96%E3%81%AE%E6%A6%82%E8%A6%81)ことに注意.複数言語にわたっている都合上,[カリー化の解説部分](#カリー化の概要)を含め,各言語・パラダイムに精通している方々のツッコミ歓迎.
記法のみの一覧は次の通り.`f`は関数,`a`は引数を指す.
| 言語 | 各引数の戻り値 | 各引数の指定 | 備考 |
|:-:|:-:|:-:|:-:|
| Haskell | `\“->`による無名関数 | `(・・・(f a) a)・・・a` | 自動的にカリー化 |
| Scheme | `lambda`
Laravel Excel を用いてCSV出力する手順
Laravel Excelに関しての情報があまり多くないので、備忘録としてアウトプット。
手順は、
1.パッケージのインストール
2.Excel.phpの生成
3.サービスプロバイダーの登録
4.エクスポートクラスの生成
となる。#1.パッケージのインストール
composerを用いて、LaravelExcel3.1をインストールする。
必要なバージョン、PHP拡張モジュールは以下の通り。
・PHP 7.0以上
・Laravel 5.5以上
・PhpSpreadsheet 1.6以上
・php_zip、php_xml、php_gd2、php_iconv、php_simplexml、php_xmlreader、php_zlibルートディレクトリで以下のコマンドを実行する。
“`
$ composer require maatwebsite/excel
“`
インストール完了後、composer.lockを確認する。“`
“name”: “maatwebsite/excel”,
“version”: “3.1.20”,
“`
ちゃんとインストールされている。
Laravelで好きなCSSフレームワークを使う
## 準備
– ~~導入したいCSSフレームワークのSassのソースフォルダをダウンロードしておきます。~~
– ソースフォルダのダウンロードではなく、npmなどのパッケージマネージャでのインストールが間違いが起きないのでおすすめです。
– Laravel標準のBootstrapではなく、どうしてもMaterializeを使ってみたかったのでこれを導入します。[Materialize](https://materializecss.com/)
![Materialize01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/649853/137fba65-302e-2373-d29c-f59f18c1d8b3.png)### 環境
– Laravel Framework 7.22.4
– Materialize 1.0.0## フレームワークを導入する
npmをインストールしたら、プロジェクトフォルダ直下に作られるwebpack.mix.jsを開きます。“`webpack.mix.j