- 1. (Laravel6.x)laravel/ui で 5.8 以前の make:auth のscaffolding する
- 2. VisualStudioCodeを使い始めて変わったこと
- 3. Formファサードでバリデーションエラー時にCSSクラスをあてる
- 4. linuxコマンド登録ツール(PHP)
- 5. LaravelのViewComposerで継承を使わずに共通化する
- 6. 業務システム屋が初めてWebアプリを作成しました。
- 7. macOS に phpenv で PHP 7.4 をインストールする
- 8. PHPでDBから取得したデータの型情報が欲しいのでプログラムを生成するコードを書いた
- 9. Windows10でApache+PHP+FuelPHP(+MySQL)
- 10. 新卒1年目がCircleCIに振り回される話
- 11. clound9にPHP、Laravelの環境構築をする
- 12. 法令APIを利用したリサーチツールを自作してみた【SmartRoppo】
- 13. vuetifyをlaravelに入れる
- 14. なぜデザインパターンを理解できないのか
- 15. PHP案件プロジェクトのソースコードを見て感じたこと
- 16. で変数を囲んで展開させる表示について教えてください。
- 17. Laravel の認可(Policy)にモデル以外のパラメータを与える
- 18. フレームワークを理解するために自作PHPフレームワーク作ってみた
- 19. 【Laravel】保守性をアップさせるかもしれない 3 つのテクニック
- 20. Azure Key Vault を利用した .env 内の機密情報の管理
(Laravel6.x)laravel/ui で 5.8 以前の make:auth のscaffolding する
## Laravel6.x から make:auth コマンドが消え、react と vue のscaffolding に変わった??
“`
php artisan make:authCommand “make:auth” is not defined.
“`
以前から **laravel/ui** に認証のscaffolding が移行されたから、という情報は認識していたのですが、最近 **「laravel/ui の make:auth(ui:auth) では npm が必要で react が defaultになったらしい。」** というのを聞いて公式を調べたところ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/342307/2c202d69-16d3-e2be-fb11-b9342987fffc.png)vue が前提となっているように見えるので、**今のプロジェクトではSPA用のJSは使っていないため** bladeのscaffoldings がこのまま廃止されてし
VisualStudioCodeを使い始めて変わったこと
#VisualStudioCodeを使い始めて変わったことを書いていきたいと思います。
##実は今回書いたのはVisualStudioCodeが出たての頃からのヘビーユーザです。
戸倉さん(@ayatokura)ごめんなさい。
自分はVisualStudioCodeが出たときからのヘビーユーザです。
なぜかと言うとEclipseが◯んこだったから。
1ヶ月に一回再インストールに飽き飽きしていた頃に出てきたのがAtomとVisualStudioCodeでした。
Atomはプラグインが少なかったのと重くて使いようになりませんでした。
そこで選んだのがVisualStudioCodeでした。
一番の特徴はTerminalが入っていてコマンドスクリプトも使えるんですよ。
実はLinux(Ubuntu・CentOS・RHESなどで使用可能)やMac・Windowsでも喜んでVisualStudioCodeを使っちゃうユーザでした。依然ある職場でLinuxVimerにかなり妬まれました。
Vimが嫌になっておりしこたま困りました。
それはVisualStudi
Formファサードでバリデーションエラー時にCSSクラスをあてる
バリデーションエラー時に、Formファザードで作ったタグにエラー用のCSSクラスをあてる方法を調べました。
—
ルーティングと簡単なコントローラーを用意します。“`php:routes/web.php
Route::get(‘/form’, ‘FormController@index’);
Route::post(‘/form’, ‘FormController@post’);
“`“`php:app/Http/Controllers/FormController.php
‘選択してください’,
‘1’ => ‘ほげ’,
‘2’ => ‘ふが’,
linuxコマンド登録ツール(PHP)
###当方のスペック
OS:Windows10 Home 64bit
メモリ:8GB
CPU:言いたくないほどダサい
(なんせ安いパソコンなので)
ローカル開発環境:XAMPP実業務であまりphpを使う機会がないが、興味があるので以前勉強がてらに作っていたプログラムをメモとして残そうと考えている。
さらに登録するデータ量がある程度ほしいのと、資格の勉強も進めたかったことから作成してみようと考えた。
そして、lpic勉強のためのサイトpint-tのコマ問題のような雰囲気の
ものを作れたらと考えていた。##機能
linuxコマンド、コマンドのオプション、コマンドのカテゴリー、
コマンドの機能(用途)を登録、削除、参照できるプログラムDB:sqlite3
(理由:簡単に使えるから && DBの勉強に丁度よさそうだから)###完成イメージ
![完成イメージ](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/494408/c5183273-b021-5c36-8ea0-15eb51af5f15.jpe
LaravelのViewComposerで継承を使わずに共通化する
この記事は[Laravel Advent Calendar 2019](https://qiita.com/advent-calendar/2019/laravel)の15日目の記事です。
# ViewComposerとは?
> ビューコンポーザはビューがレンダーされる時に呼び出される、コールバックかクラスメソッドのことです。ビューがレンダーされるたびに結合したい情報があるなら、ビューコンポーザがロジックを一箇所にまとめるのに役立ちます。
> [ビュー 6.x Laravel](https://readouble.com/laravel/6.x/ja/views.html)基本的な実装方法も上記Laravelのドキュメントで確認することができます。
# ViewComposerの実装を共通化する
本記事ではサンタクロース(santa-claus)画面とトナカイ(reindeer)画面にそれぞれViewComposerを定義し、
それぞれ共通して `isChristmas` をViewから参照させます。
これを継承を使った方法を紹介した上で、継承を使わずに共通化する方法を紹介
業務システム屋が初めてWebアプリを作成しました。
#この記事について
業務システム3年の若輩エンジニアが、忘年会の余興支援Webアプリを作成しました。
初めてのWebアプリであったので、その時勉強したことをまとめています。#作成したWebアプリについて
参加者にポイントを配布し、カジノのようにポイントを多くするゲームの支援アプリ。###余興の内容
– アナログでミニゲームを行う。(ジェスチャーゲームなど)
– 参加者はミニゲームの結果を予想する。(何人目まで正しく伝わるかなど)
– 予想には、自身のポイントをベッドする。
– 予想的中者はベッドしたポイントが2倍になり返却される。逆に予想を外した人はポイントが没収される。
– ミニゲームを数回行い、ポイントの高い順から豪華景品をプレゼント!##実装した機能
###参加者のログイン、ポイント、ランキング管理
![IMG_6523.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/532785/1721cfe7-13da-e42c-6498-4098a310744a.png)###ミニゲームの
macOS に phpenv で PHP 7.4 をインストールする
[PHP 7.4 が2019年11月28日にリリースされて](https://www.php.net/archive/2019.php#2019-11-28-1)、 [phpenv + php-build では2019年12月10日に PHP 7.4 が追加されたよう](https://github.com/php-build/php-build/blob/master/CHANGELOG.md)なので、早速 macOS にインストールしてみたけど、結構てこずったので、私がインストールできた方法をまとめておきます。
# 環境
– macOS: 10.15.1
– phpenv: v0.9.0-rc.1
– php-build: v0.11.0dev# はじめに実行したコマンド
phpenv を最新の状態にして
“`
$ phpenv update
“`PHP 7.4 をインストールしようとしたところ、いくつかのエラーが発生したので、順番にエラーを潰していった。
“`
$ phpenv install 7.4
“`# `krb5` をインストールする
`k
PHPでDBから取得したデータの型情報が欲しいのでプログラムを生成するコードを書いた
phpstan 0.12 の level:max に対応させようとしてプログラムがかなり変わった。
自分で思った以上にDBから取得したデータを`stdClass`で持ち回していたみたい。
そうすると phpstan がまったく使えないので、DBのテーブル情報をPHPのクラスに変換するコードを書いた。以前は自作ORMを使っていてDBのテーブルを解析して`eval`してクラスを作ってたんだけど、最近は素のPDOでいいやってなってた。
でもORMのようなものが必要になって、結局同じようなことになってしまうんだなあ、などと思ったり。“`php
#!/usr/bin/php
Windows10でApache+PHP+FuelPHP(+MySQL)
# 茶番(興味無かったら飛ばしてください。)
今学期の授業でApache+PHPを使うためにUbuntuを使っているのですが、周囲の知り合いから**「Ubuntuの動作が重すぎてブチ○したい」**だの**「なんで学校のPCにはメモリ8GBしか載ってないんじゃそんなんでVirtualBoxが快適に動くかアホ○ね」**といった悲鳴が聞こえてくるので僕は思ったんですよ。
***「…じゃあUbuntuじゃなくてWindowsで動かせば良くない…?」***
しかし、これを言うと「やり方がわからん[](いや調べろや)」やら「terminal触りたくない[](こういうのはもう手に負えない。)」と言った人が出てくるんです。~~terminal触りたくないは君よくここまで生きてきたなこの学科でと言いたくなったけど。~~前置きがクッソ長くなりましたが、まあ要するにそういう人のために向けた設定の手順をここで教えるので、やりたくなった人は参考にして下さいってことです。
ちなみにFuelPHPを導入する理由は授業で使うからです。~~Google検索の予測候補に「FuelPHP オワコン」って出るような
新卒1年目がCircleCIに振り回される話
こんにちは!新卒エンジニア1年目の@k_mattunです。
この記事は、All About Group(株式会社オールアバウト) Advent Calendar 2019 15日目の記事となっております。# はじめに
つい先日入社したように感じますが、気づいたらクリスマスが迫っているんですね・・・。
社会人の方々が言っていた、あっという間に時間が経っている現象を身を以て体験して焦りを感じています。この記事では、新卒エンジニアとして仕事を始めてハマった事を書いていこうかなーって思います。
※Advent Calendarに書く内容がなかったわけではありませんので、誤解なきようお願いします# 基本的な開発環境
私が日頃仕事を行う上での基本的な開発環境としては、ざっくり以下の通りです。## 使用言語
– PHP5系 or PHP7系
– JavaScript## 使用フレームワーク
– Laravel5系## インフラ周り・CIツール
– GCP
– k8s
– Docker
– CircleCI# ハマった事その1
まずこのエラーについて説明する前に、やっていた
clound9にPHP、Laravelの環境構築をする
# はじめに
PHP、Laravelを学習するために環境構築の備忘録として記載# 環境
AWS Cloud9# インストール
PHP 7.2
Laravel 5.5# 1.PHPのセットアップ
#####リポジトリのインストール“`:
$ sudo yum -y install http://rpms.famillecollet.com/enterprise/remi-release-6.rpm<中略>
Installed:
remi-release.noarch 0:6.10-1.el6.remiComplete!
“`
#####PHP 7.2と必要なパッケ
法令APIを利用したリサーチツールを自作してみた【SmartRoppo】
“`
1. はじめに
2. リーガルテックっぽいプロダクトを作ってみた
3. SmartRoppoのコンセプト
4. SmartRoppoの主な機能・特長
5. なぜ自分で作ろうと思ったのか?
6. 今後の課題
7. おわりに
“`##1. はじめに
この記事は、じゃんく([@jank_2525](https://twitter.com/jank_2525))さんからバトンを受け継ぎ、「**[法務系 Advent Calendar 2019](https://adventar.org/calendars/3900)**[^1]」の14日目エントリーとして執筆しています。
皆さんのエントリー、どれも個性あふれる素敵な内容で、毎日大変興味深く拝見しています。
##2. リーガルテックっぽいプロダクトを作ってみた
さて、突然ですが、リーガルテック的なプロダクトを作ってみたので、このエントリーをもってβ版を公開させていただきます。**【SmartRoppo】**といいます。
**SmartRoppo -法令データベースを、もっと賢く-**
https://sma
vuetifyをlaravelに入れる
#vuetifyとは
[公式サイト](https://vuetifyjs.com/ja/introduction/why-vuetify)では、全てのユーザーにリッチなWeb開発体験をお届けする、**「one of the most popular JavaScript frameworks in the world」**であると謳っている。
定期的なupdateやサポートも行っている模様。他のvue.jsフレームワークとの比較の表が下記。なかなか魅力的なライブラリであるように思えます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/338175/044c37ce-1147-7a14-1d04-497994825c3b.png)
まんまと公式の謳い文句にのせられた感じはしますが、それじゃ使ってみようじゃないかと思い、自身の勉強用に作成したwebアプリに導入してみました。(laravel+vue+docker)
##導入方法
閑話休題、本題の導入方法ですが、基本公式ページのや
なぜデザインパターンを理解できないのか
本記事はうるる Advent Calendar 2019 14日目の記事です。
## はじめに
エンジニアなら一度は必ず耳にする「デザインパターン」
ただし、「デザインパターン」の勉強って何をすればいいのかや、勉強したけどあまり理解できないという人は少なくないのではないでしょうか?
そこで自分が1ヶ月必死に勉強をした際に思った、必ず抑えとくべきことを紹介したいと思います。
※上級者向きではないので悪しからず…## デザインパターンとは
ソフトウェアをより修正・保守しやすくするもの
つまり、目的は柔軟性(再利用性)を保つこと## 抑えとくべき事
1. デザインパターンはただの考え方に過ぎない
2. 継承とコンポジションの理解## デザインパターンは考え方の違い
デザインパターンと聞いて難しそうだなと感じてしまう人がいると思いますが、
デザインパターンは単にオブジェクト指向開発での設計思想です。
なので、デザインパターンの1つ1つには必ず、「前提・目的・解決策・メリット・デメリット」が存在していると思っています。
ここでは***Template Methodパターン*
PHP案件プロジェクトのソースコードを見て感じたこと
#はじめに
PHP Advent Calender 14日目の記事です。
こちらの経験談で書いたコーディングの部分で実際の現場のコードを見て感じたことについてまとめた記事になります。[やらかしまくった一人プロジェクトの経験談](https://qiita.com/cube_3110/items/fa5053bc5a577728b006)
若干思い出しながらになりますが最後までお付き合いいただけると幸いです。
###①複数クラスの同じ処理の共通化をし忘れる
これは、この現場だけじゃなくていろんな現場でやらかします。修正前
“`classA.php
class A
{
処理A(処理B,Cと共通する部分あり)
}
“`
“`classB.php
class B
{
処理B(処理A,Cと共通する部分あり)
}
“`
“`classC.php
class C
{
処理C(処理A,Bと共通する部分あり)
}
“`修正後
“`classABC.php
class ABC {
処理D
}
“`“`classA.php
class A extends ABC
= ?>で変数を囲んで展開させる表示について教えてください。
仮に、
“`
“`
とすれば、
hello!
——————–
と表示されると思います。今、
“`
$PL101=”hello!”;$PL102=”$PL101″; // <- ここの書き方を何かしら工夫するものとしてください。 ``` となっているとして、直に$PL101は参照できないものとしてください。 そのような前提で、 ```
“`
というように$PL101を参照せずに、
hello!
——————–
と表示させたいのですが、無理でしょうか?もう少し具体的に言うと、
予め帳票のレイアウトのデータとして
“`
$PL102=”$PL101″;“`
と書いてあります。
このレイアウトのデータをテンプレートにして、印刷したいときに
Laravel の認可(Policy)にモデル以外のパラメータを与える
## この記事について
[Laravel #2 Advent Calendar 2019 – Qiita](https://qiita.com/advent-calendar/2019/laravel-2) 14日目の記事です。
表題の通りではあるんですが、意外と使われてないなぁと思ったので記事にすることにしました。
## はじめに
### 環境
– Laravel 6.6.0
5.x でも同じです。
### Policy について
特定のモデルに対し、ユーザーが操作権限があるかどうかを判定する仕組みで、公式ドキュメントには以下のような使用例が載っています。
“`php
class PostPolicy {
public function update(User $user, Post $post) {
return $user->id === $post->user_id;
}
}
“`呼び出し側は、
“`php
class PostController extends Controller {
public fu
フレームワークを理解するために自作PHPフレームワーク作ってみた
この記事は[2019新卒 エンジニア Advent Calendar 2019](https://qiita.com/advent-calendar/2019/2019-graduates)の1日目の記事です。
(参加しようと思ったのが13日でしたが、空いている枠が1日しかありませんでしたので1日目の記事として投稿しました。すみません。)# 動機
仕事でフレームワークを使ってWebアプリを開発しています。
自作でフレームワークを作ることで、* プログラマとしてのスキルアップ
* フレームワークが何をしているのか理解できるようになり、バグの原因発見が容易になる
* 機能追加の際にフレームワークの動きも加味していいコードが書けるようになる以上のメリットがあると考えたためです。
# どのように作ったか
[パーフェクトPHP](https://www.amazon.co.jp/dp/B00P0UDWQY/)の第7~8章を参考にしました。# 得られた知見(大きなもの一部抜粋)
スクラッチでフレームワークを作ることで以下のような知見を得られました。### PHPがどのようにレ
【Laravel】保守性をアップさせるかもしれない 3 つのテクニック
# はじめに
初めまして、MasaKu です。
今年も残すところわずかですね。
今年もたくさんのコードを書いてきたことだと思います。
中には埃をかぶりまくった個人開発のコードもあるかと思いますが、年末のこの時期にちょっとだけリファクタリングとして手を入れていみませんか?
今回は、Laravel で作成されたアプリケーションを、ちょこっとした工夫だけで可読性をアップできるかもしれないテクニックをご紹介します。
# その1:ルートグループ
Laravel では `web.php` にルーティングする処理を記載します。
超ざっくりしたブログページのサンプルを作成しました。
“`php
// ホーム画面
Route::get(‘/home’, ‘HomeController@home’);// ブログページ
Route::get(‘/blog’, ‘BlogController@blog’);
Route::get(‘/create’, ‘BlogController@create’);
Route::get(‘/update’, ‘BlogController@upd
Azure Key Vault を利用した .env 内の機密情報の管理
# .env と機密情報
Laravel を利用したプロジェクトは通常 `.env` を使って環境変数を管理しています。`.env` には各種認証情報などを含めることもあると思いますが、それらは Git などのバージョン管理システムに平文で保存するべきではありません。
かと言って、どこにも管理されておらず稼動している環境に置いてあるだけの状態というのも心許無さがあります。そこで [Azure Key Vault](https://docs.microsoft.com/azure/key-vault/basic-concepts) (和名:キー コンテナー)の[シークレット](https://docs.microsoft.com/azure/key-vault/about-keys-secrets-and-certificates#key-vault-secrets)と、Go で書いた簡素な [vaultenv](https://github.com/sensyn-robotics/vaultenv) というツールで、 `.env` に直接機密情報を記述することなく管理できるようにし