- 1. Laravel Rocketというツールについて
- 2. PHPのデバッグツール「XDebug」をVisual Studio Code + MAMPに導入する方法
- 3. 日本語版PHPUnitマニュアルを英語版と同期していきたい話
- 4. Moodle 3.8 マニュアル – 予期しないインストールの停止
- 5. ハッシュ関数で伏せ字するサービス
- 6. # PHPカンファレンス2019東京 自分用まとめ
- 7. 「銀行の資産運用商品管理ウェブシステム」の紹介
- 8. PHP基礎 Part7
- 9. 【Laravel】 認証でユーザを取得するとき,特定のスコープに限定する
- 10. CakePHP3.8のCsrfProtectionMiddlewareを特定動作時に無効化する
- 11. pre-commitのススメ
- 12. 【PHP】【初心者向け】ぼっちっちゲームを作ってみた
- 13. ”パソコンを付ける”から”なんとか開発できる”になるまで
- 14. p5jsでPokémon GOっぽいUIを作る(1)
- 15. マイナーなCMS
- 16. Composerと、Homebrewのまとめ
- 17. おれがコンピュータに足し算を教えてやろうと思ったらもう知ってた
- 18. LINEMessagingApiを使って簡単なBOTを作成する
- 19. Gmail(SMTP)経由でメール送信する
- 20. Laravelでドメイン駆動設計を実践し、Eloquent Model依存の設計から脱却する
Laravel Rocketというツールについて
ここ3年位、[Laravel Rocket](https://laravel-rocket.github.io/#/)という名前のLaravelのコードジェネレータというか、ボイラープレーティングの一連のライブラリ/ツールを作っています。これまで特にどこかで紹介するチャンスもなかったのですが、どういうものかをここでまとめておきたいと思います。
[https://laravel-rocket.github.io/#](https://laravel-rocket.github.io/#/)
## Laravel Rocket 概要
Laravel Rocketは、Laravelのアプリケーションをなるべく早く、しかも誰が書いてもそこそこ同じような整理されたコードになるように作りたい、という気持ちで生まれたものです。MySQL Workbenchを使ってデータベース設計を作り、(必要なら)APIの設計をOpenAPI(Swagger)で作成すると、マイグレーションファイル、Model、Repository、そこそこ使えるCRUD(Reactベース)、APIを自動生成してくれます。テ
PHPのデバッグツール「XDebug」をVisual Studio Code + MAMPに導入する方法
## 環境
Windows 10
Visual Studio Code 1.40.2 (以下、VSCode)
(PHP Debug 1.13.0, PHP IntelliSense 2.3.1)
PHP 7.1.5
MAMP 3.3.1
Chrome 78~## Xdebugはインストールできたのに動かない方へ
Visual Studio Code上にXdebugをインストールして使用する方法は、すでに様々なところで紹介されていますが、私の環境ではインストールはできても、いくつか設定を追加・変更しないと機能しなかったので、同様の環境の方々の参考になるようにメモとして残します。サーバーはMAMPを利用して、ローカルホストで実行します。## 手順
1. VSCode上で必要な拡張機能をインストール
2. Xdebugの公式
日本語版PHPUnitマニュアルを英語版と同期していきたい話
[^1]: https://github.com/sebastianbergmann/phpunit/blob/7.5/ChangeLog-7.5.md#deprecated-1 を参照
この記事は「[PHP Advent Calendar 2019](https://qiita.com/advent-calendar/2019/php)」の10日目の記事です。
## はじめに
PHPUnitのマニュアルはバージョン7以降は次のページで公開されています。PHPUnitを使っている方の多くが見たことあるページだと思います。
– 日本語版:https://phpunit.readthedocs.io/ja/latest/
– 英語版:https://phpunit.readthedocs.io/en/latest/英語版以外は最新バージョン(latest)のみ、英語版だとhttps://phpunit.readthedocs.io/en/7.5 のように、古いバージョンのマニュアルも見れる運用になっているようです。
## 日本語マニュアルの現状
日本語版のマニュアルは最新
Moodle 3.8 マニュアル – 予期しないインストールの停止
[原文](https://docs.moodle.org/38/en/Unexpected_installation_halts)
# 予期しないインストールの停止
内容
[1 切り捨てられた MySQL のステートメント](#1-切り捨てられた-mysql-のステートメント)
[2 Continue ボタンがなくなる](#2-continue-ボタンがなくなる)
[3 コードのカスタマイズ](#3-コードのカスタマイズ)
[4 あなたのメモリー制限をチェックしてください](#4-あなたのメモリー制限をチェックしてください)
[5 漸進的アップグレードを行わないでください](#5-漸進的アップグレードを行わないでください)
[6 データベースの設定の問題](#6-データベースの設定の問題)
[7 関連項目](#7-関連項目)# 1 切り捨てられた MySQL のステートメント
(mysql): SET NAMES ‘utf8’
————————————————————————–
ハッシュ関数で伏せ字するサービス
# はじめに
伏せ字をするとき、「わかる人にはわかるだろうけど、間違われるのは困るな…」ということ、ありませんか?
「それって、〇〇社ですよね」みたいなリプライが来て、しかも全然違う答えだったりすると、風評被害だし迷惑ですよね。でも「残念、ハズレです」なんて一々送っていたら、さらに的外れなリプライが付くことは目に見えています。
「わかる人にだけわかればいいし、答え合わせは自分たちでやってくれ…!!」という人に便利なのが、この「[Hashtter(はしゅったー)](https://splamp.info/shed/hashtter/)」です。
Hashtter(はしゅったー)
https://splamp.info/shed/hashtter/# 使い方
上の部分に文章を
# PHPカンファレンス2019東京 自分用まとめ
初投稿です。
さすがに技術的な記事を最初に書いて投稿するのはハードルが高かったので(勝手につくってるやつ)、
2019年12月1日に行われたPHP カンファレンスを勝手にカテゴライズして、勝手にまとめてみました。
※一部php7.4に関する記事も入ってます。懇親会にも参加しましたが、すごく勉強になりました!
来年も東京で参加するつもりです## PHP 7.4 について
### 追加
https://medium.com/@kim.jangwook/php-7-4-%E6%96%B0%E6%A9%9F%E8%83%BD%E3%82%B5%E3%83%9E%E3%83%AA%E3%83%BC-d74ecb2582fb
### 削除
https://medium.com/@kim.jangwook/php-7-4-deprecations-479293acbfe4## セッション
### 技術系
* [PHP における並列処理と非同期処理入門](https://speakerdeck.com/memory1994/php-niokerubing-lie-chu-li-tof
「銀行の資産運用商品管理ウェブシステム」の紹介
# 開発背景
####システムの概要
– このシステムは中国の各銀行のホームページに掲載されている資産運用商品の発行時期、発行支店・金利などの情報を1つのwebサイトに統合
– ユーザがコメントと販売情報を問い合わせる機能ができる#### システムを導入する目的
– 資産運用の要望があるユーザが1つのwebサイトで各銀行により発行した商品の発見・比較を便利になった
– 銀行のオンライン業務を推進・宣伝効果を拡大#### システムの取扱商品:資産運用商品
– 中国の銀行で販売される小口で短期の投資信託のような商品(理財商品)
– 日本における高利回りの定期預金のような金融商品#### 開発チームについて
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/427518/c6a690b8-0c23-bc33-f88e-26962e231f30.png)# 要件定義
#### 進捗管理:開発Roadmap
![image.png](https://qiita-image-store.
PHP基礎 Part7
# 概要
PHPの独学で学んだことをアウトプットしていく## 前回の内容
[PHP基礎 Part6]
[PHP基礎 Part6]:https://qiita.com/aizawa_K/items/f9195b105cc4caa48fed## オブジェクト指向について
オブジェクトつまり「もの」を対象にした考えである
ものを作り、ものを操作するといった考え方
プログラミングでもオブジェクト思考をベースに実装することで、
プログラムにおける役割の明確化やコードの可読性・保守性に役立つ。
例えばECサイトであれば、「商品」「ユーザー」「カート」といったオブジェクトが存在し、
それぞれのコードを用意するようなイメージである### オブジェクト
直訳すると「もの」になる
プログラミング上では、データや処理の集まりを指す
上記のECサイトの例で考えると、ECサイトの利用者には氏名、年齢、性別、住所といったデータがある
また、ECサイトでは商品をカートに入れる、支払方法を選ぶ、購入するといった処理がある### クラス
オブジェクトの設計書のような役割を持つ
オブジェクトの中に、後述す
【Laravel】 認証でユーザを取得するとき,特定のスコープに限定する
# 問題
“`php
class User extends Model implements Authenticatable
{
use SoftDeletes;
}
“`“`php
Auth::user() // 論理削除ユーザは除外される
“`[`SoftDeletes`] を使用している [`Authenticatable`] の場合,グローバルスコープで論理削除を除外するものが付与されるので,認証時にも除外される。ところが論理削除とは違う「有効アカウント」「無効アカウント」といった表現を **`status={0,1}`** のように行っている場合,素の状態では対応できない。ここでは,できるだけ Laravel 標準の [Auth](https://github.com/illuminate/auth) に乗っかる形での実装を目指して対応してみる。
(備考)[【Laravel】 認証や認可に関する補足資料 – Qiita](https://qiita.com/mpyw/items/8c5413b99b8e299f7002)
[`SoftDelet
CakePHP3.8のCsrfProtectionMiddlewareを特定動作時に無効化する
# 実際のコード
“`php5:Application.php
Router::scope(‘/’, function (RouteBuilder $routes) {
// Register scoped middleware for in scopes.
$routes->registerMiddleware(‘csrf’, new CsrfProtectionMiddleware([
‘httpOnly’ => true
]));
/**
* Apply a middleware to the current route scope.
* Requires middleware to be registered via `Application::routes()` with `registerMiddleware()`
*/
if (empty($_POST[“postFlg”])){
$routes->applyMiddleware(‘csrf’);
};“
pre-commitのススメ
この記事は [Git Advent Calendar 2019](https://qiita.com/advent-calendar/2019/git) 10日目の記事です。
# はじめに
最近、gitのhooksでpre-commitを使い始めた
なかなか良いことが多かったので書いてみる# モチベーション
– PHPという自由な言語なので、他人のコードを読む時に苦しみたくない
– コードレビューの時にスペースがないとかくだらないことをチェックしたくない
– シンタックスエラーを事前に検知したい# やったこと
– `php -l`でのシンタックスチェック
– `phpmd`でのお作法チェック
– `php-cs-fixer`での自動修正上記3点をcommit時にチェック。違反や引っかかることがあった時に、__commitできない__という結構厳しめのルール設定
# php -lについて
– phpのシンタックスエラーをチェックしてくれる
“`php
“`“`bash
$ php -l f
【PHP】【初心者向け】ぼっちっちゲームを作ってみた
この記事は[2019新卒 エンジニア Advent Calendar 2019](https://qiita.com/advent-calendar/2019/2019-graduates)の10日目の記事です。
19新卒!というわけで参加させていただきました。が,バリバリ初心者ゆえ,記事には期待しないでください…
##自分について
– 2019年,文学部を卒業
– プログラミングまったくの未経験で,システム開発の部署に
– HTML・CSS・JS・PHPを学び今に至る#本題
PHP(とMySQLとJS)を用いて,ぼっちっちゲームができるWEBアプリを開発しました。
(※実際に作ったのは10月頃です)##ぼっちっちゲームって?
関ジャニ∞クロニクル という番組で実施された,多人数で遊ぶゲームです。> お題がかかれているカードを1人ずつにランダムに振り分け、かかれている単語について話し合う。5枚の内1枚だけ違うお題がかかれているのだが、1人だけ違うカードを持っている人、つまり「ぼっちちっちが誰なのか」を最も早く見破ったメンバーが勝利するというもの。
引用:https:
”パソコンを付ける”から”なんとか開発できる”になるまで
始めまして!
新卒1年目でエンジニアをしているマンです。
この度Advent Calendarの企画に混ぜて頂き、初めての投稿をしてみます
至らぬ点もあるかと思いますが是非色々ご指摘頂ければ幸いです。
今回は初めて開発していく中で理解に苦しんだ点を共有してみたいと思います
# 開発環境
– PHP
– phpMyAdmin
– phpStorm
– Git# 開発を始める前の私の状態
– とりあえずインターネットで検索はできる
– PHP?環境?え、何それは…
– 簡単なゲームを作りたいと思ってC++をやっていた時期が私にもありました# 私に課せられた課題
WEBアプリケーションのソースコードをローカル上で確認し、
あるページの文言○○を××に変える私『勝ったなガハハ』
はい、地獄のスタート
# その壱
#### ”まずツールの使い方が分からない”
phpStormを使って開発をしていくというのは辛うじて理解できたものの
どうやれば開発できるのか?そもそもここに表示されている謎のコードは何なのか?
からスタートしたため全てが手探りでしたとりあえず文言を変えればよいと
p5jsでPokémon GOっぽいUIを作る(1)
位置情報と連携するサイトを作っているが、ふとPokémon GOっぽくしたいと思ったもののUnityを覚えるのは大変。というわけでp5jsでどこまで近づけられるかを試してみる1回目。多分、10回ぐらいすれば色々と機能が揃うかも。
# まず地図を作る
Pokémon GOはGoogleだと思いますが、ここはYahoo!JapanのYOLPのスタティックマップを使ってみます。
https://developer.yahoo.co.jp/webapi/map/openlocalplatform/v1/static.html
アプリケーションIDを取得して、こんな感じで施設名とか地名が入ってない地図を作ってみる。
“`php
$appid,
‘lat’
マイナーなCMS
# PHP
MYSQL [anchorcms/anchor\-cms: A lightweight blog CMS for PHP](https://github.com/anchorcms/anchor-cms)
[Make blogging beautiful — Anchor CMS](https://anchorcms.com/)
[基礎的な機能を提供。カスタマイズ前提のCMS·Anchor CMS MOONGIFT](https://www.moongift.jp/2012/03/20120320-2/)NODB+markdown [picocms/Pico: Pico is a stupidly simple, blazing fast, flat file CMS\.](https://github.com/picocms/Pico)
[Download \| Pico](http://picocms.org/download/)
[\[KUSANAGI\] MarkdownなCMS picoをインストールしてみた \- \(っ´∀`\)っ ゃー \| 一撃](h
Composerと、Homebrewのまとめ
#~はじめに~
僕は、つい最近エンジニアとしてqnoteに就職した21歳のオトコです。
まだまだ技術として自慢出来るものや、人間として誇れるものも何もありませんがこれから少しずつでも前に進んで行こうと思っています。
元々、自動車販売の営業や自販機の補充をする仕事などをやっていて、そこでは自分の好きな事をやれている実感がなかったので転職しました。(ほんとはもっといろんな理由がありますが、、、笑)
最初はRubyとrailsを学習していて、PHPやLaravelは触った事もありませんでした。
(ゆうてもRubyも使いこなしていた訳ではありませんが。笑)
そこで、Laravelの開発環境を整えている最中、『何やねんこれ』って思った”Composer”と
“Homebrew”について初心者なりに調べて自分なりにまとめてみました。出来るだけ分かりやすい説明を心掛けます
(間違っていたら指摘してくださいっっっm(_ _)m)##そもそもComposerとはなんぞや??
Laravel開発環境とかで調べてると、「とりあえずComposerインストールしてな( ^∀^)」くらいの感じで言われる事が
おれがコンピュータに足し算を教えてやろうと思ったらもう知ってた
“`php
echo gmp_add(
‘2345760293460295683704558703456102394871348756109347501936410934756102913874187344541930193470934875’,
‘7947618927365019364019257691823461928734634570193248703473987562093471093576293478628949398873429857’
); // 10293379220825315047723816395279564323605983326302596205410398496849574007450480823170879592344364732
“`はい。
まあ、これだけだとアレなので、GMPを使わず[addBigInt](https://qiita.com/noritakaIzumi/items/7b95852c3d5cc626c7b7)をもう少し簡単に書けないか検討してみることにします。
“`php
function addBigInt(stri
LINEMessagingApiを使って簡単なBOTを作成する
### SDKのインストール
https://github.com/line/line-bot-sdk-php
`composer require linecorp/line-bot-sdk`### WebhookをLINEDevelopersの管理画面から登録する
ページ真ん中にある「Webhook settings」にwebhookのURLを設定(httpsじゃないとダメです)して、「Use webhook」のトグルをONにします。
Gmail(SMTP)経由でメール送信する# 記事の主旨
GmailのSMTP利用する際には、
– Googleアカウントのセキュリティ設定を忘れず、済ましておいてくださいね
– 「安全性の低いアプリの許可」に逃げず、「二段階認証/アプリパスワード」を使いましょうというだけの記事です。
`SMTP Error: Could not authenticate.`
エラーにつまった人向けの備忘録です。# メール送信のサンプルコード
https://github.com/kasssy/php_sendmail# Googleアカウント作成〜メール送信に成功するまで
Googleセキュリティ設定を意識せずに、作業をした場合に起こること・対処方法です。## Googleアカウントを作成する。
– ID : サンプルコード内の`from@gmail.com`
– PW : アカウントの`マスタパスワード`##### (point)作成段階のデフォルト設定では、セキュリティ上、SMTPエラー(アクセス不可)になってます。
## サンプルコードで、テスト送信してみる。が、あえなくエラー発生。
以下を実行しても`
Laravelでドメイン駆動設計を実践し、Eloquent Model依存の設計から脱却する
この記事は[ドメイン駆動設計#1 Advent Calendar 2019](https://qiita.com/advent-calendar/2019/ddd-1)の10日目の記事です。
# やったこと
自社サイトのバックエンドをLaravelで実装して半年間が経ち、初期に考えた設計にいろいろと綻びが出てきたと感じていました。
そんな中、ちょうど実践ドメイン駆動設計やWeb+DB Pressで特集された体験DDDを読むことができたので、さっそくいくつかの機能をDDDで実装してみました。
本記事では「もともとLaravelで実践していた**Eloquent Model依存の設計**」の問題点を提起し、「DDDを取り入れて実装した結果」のソースコードや考え方、そのメリットを記載しています。# 結論
– LaravelのModelをあらゆるレイヤーで使うと改修が難しくなる
– 開発する機能のユースケースを主語と述語で文章に表現し、そのままUseCase層の実装として表現する
– EntityやValueObjectに制約条件をまとめ、適切に例外を吐く
– LaravelのMod