- 1. 概要
- 1.1. VBAフォーム、DB接続クラス化入門①
- 1.2. Laragonで簡単に開発環境を構築する
- 1.3. LaravelでLoggerをいい感じにする
- 1.4. database接続の手書き入力について
- 1.5. 文字列→塩基配列の相互変換ツールをつくってみた(アプリ版)
- 1.6. 【個人開発サービス】たった6時間で作った、なんでもランキングにしたがる君たち向けのサービス「Cappps(キャップス)」をリリースした
- 1.7. Laravelのバージョンを確認するコマンド
- 1.8. dockerでbrowser-syncを導入して令和のWordPress環境に
- 1.9. PHP基礎構文 ヒアドキュメントとNowdocの構文と違いについて
- 1.10. 「Chrome 80」でのクッキー(Cookie)の心構え:SameSite=None; Secure
- 1.11. AWSでランディングページを立ち上げた話【1.導入編】
- 1.12. 広告ブロックをするクライアントに広告を表示させる
- 1.13. PHP変数のスコープ
- 1.14. SQLやコマンド実行を書いたときのうっかりを警告するための文字列チェック PHPStan Extension を作った
- 1.15. Laravel DB.com がVer2にアップデート!!ER図→CRUD自動生成ツール
- 1.16. Laravel6 CSV ダウンロードを streamDownload でやるサンプル
【画像処理】Webサービス運営者に知ってもらいたいTwitterカードを自動生成する方法
こんにちは、いちいちです。@ichiichi_1115
PHPで画像を自動生成してTwitterカードにしてみたので、その方法を説明します。
Webサービス運営者 特に投稿サービスを運営している人には、絶対に読んでもらいたいものとなっています。
# 作ったもの
画像加工といっても、ただメインの画像に文字を付けただけです。
![shereimage.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/377526/9a0d7ee6-008c-920d-3453-02802e27bf8b.png)
これに、文字をいい感じにつけて
![4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/377526/e397540a-6ede-2ecd-9736-2162e443cca6.png)
こうしました。(内容から筆者が運動嫌いなことがわかる)。。。## 使った言語
PHPです。
5.2.0以上に、今回使うGDモジュールが標準で入っている
CakePHP3 Cake\I18n\Timeのmodify()に気をつける
# TL;DR
– **Cake\I18n\Timeクラス**が用意する**modifyメソッド**の挙動に関して
(以下、modifyと呼ぶ)
– modifyは、生成されたインスタンス自身を上書く習性がある(ようだ)
– 以下のサンプルコードを参考にして欲しい# サンプルコード
“`php
$time = new Cake\I18n\Time();
for ($i = 0; $i < 3; $i++) { // 主力結果を見易くするためにあえて改行コードを付ける echo $time->i18nFormat(‘yyyy-MM’) . “\n”;
echo $time->modify(‘next month’)->i18nFormat(‘yyyy-MM’) . “\n”;
}/*
* 期待値
*
* 2020-01
* 2020-02
* 2020-01
* 2020-02
* 2020-01
* 2020-02
*
*//*
* 実行値
*
* 2020-01
* 2020-02
* 2020-02
【try-catchは難しくなかった】cakePHPとPHPの理解を深めるためフォームの書き方を復習してみた
##cakePHP2.x
“`view/Users/create.ctp
$this->Form->create(‘モデル名’,’オプション’);
$this->Form->input(‘フィールド’,’オプション’)
$this->Form->end(‘ボタン名’)
“`“`Controller/UsersController.php
function create {
if($this->request->is(‘method属性’){
$this->モデル名->save($this->request->data);
}
}
“`##覚えておく事
###モデル等の命名について
テーブル名は「-s」をつけるが
ただモデル名は「-s」をつけない
※Controller,Viewは「-s」をつける###(createの)オプション~inputのオプションは別~
“`php
array(‘type’=>”,’action’=>”)
“`typeはHTMLのmethod属性を指定するもの
└’get’か’post’を指定する
└
エンジニア研修
概要
今回弟がエンジニアデビューするということで、macbookAir(gold)を買ってあげました。
これから9か月間、私の方で研修をおこない、それなりのエンジニアになってもらおうかと思います。そこで弟のように、エンジニアを始めたばかりの人の参考になるように、「研修内容」、「弟が躓いた箇所」や「参考文献など」を記事にしていこうかと思います。
普段私は自分のブログサイトで発信していましたが、誰も見てくれないので、qiitaに書いていくことにしました。
https://campbel.love/が私のサイトです。たまには見てくださいな(笑)弟はそこまで忍耐力もなく、また、ほとんど初心者なので「挫折をしないカリキュラム」、「スムーズな理解」に重点を置くつもりです。まさにゆとり!
なので、少し遠回りをしてしまうかもしれません。
例えば、Dockerを用いてもらいたいけど、初学者の弟には難しいのでMampから始めてもらう。みたいな。(最終的にはdockerにしてもらいますが。)偉そうにカリキュ
VBAフォーム、DB接続クラス化入門①
###【はじめに】
医療事務から30代未経験でSIerへ転職して1年経過したため(保守運用)、この一年勉強して自分がググる際に、この情報もっとあったらいいなと思ったことを備忘録として登録します。
配属しいている現場はVB6を使用したレガシーな現場である為、書き方が古かったりするかもしれないが、その点はまだ無知な点が多い為、ご了承ください。
熟練者から見たらまだまだ、冗長化されている部分もあるかと思いますが、あくまで入門者向けの方に参考していただければと思います。自宅でも勉強構築できる、なおかつ互換性のあるVBAにて[CRUD](https://ja.wikipedia.org/wiki/CRUD)ができる機能を実装します。
そもそもプログラミング自体ほぼ皆無だった状態からのため、レガシーだろうが、何だろうが、まずはプログラミングについて理解を深める意味で初めてQiitaに投稿します。
今回はDB接続~テーブルに登録してあるデータをSELECTして取り出したデータをリストに表示するところまでを備忘録として記載します。
###【環境】
– OS:Windows8.1
– Excel 2
Laragonで簡単に開発環境を構築する
皆さん、学習するとき、開発をするとき、ローカルで確認を行うときの環境構築はどうされていますか?
恐らくMacを所有している方が多くDockerを使われている方が多いと思います。自分が現在、所有しているはHPのSPECTRE X360 13、Windows 10 Homeです。Windows 10 Homeなのです。
ラップトップと言っても非力というほどではありませんがVagrantを立ち上げている間、かなりファンが回り気になります。
それに決して速いとは言えません。さらに現時点ではまだWSL2とDocker for WSLは正式リリースされていません。ではどうするか?
![コメント 2020-01-01 215211.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/456877/4657d482-bca0-0310-bbc8-b27e50ce2a75.png)
https://laragon.org/Laragonです。
Windows向けのAMP環境構築ソフトで
**PHP、Node.js、
LaravelでLoggerをいい感じにする
ログって結構大事ですよね。
手軽にちゃんと情報がだせるLoggerを定義しておいて、いい開発・運用環境作りたいです。この記事では、ElasticSearch等に突っ込んでログを検索可能にすることを前提に、いい感じにログ出力することを目指します。
## 環境
Laravel 5.8
## やりたいこと
Laravelのログをカスタマイズして、いい感じにする。
### いい感じとは
– Laravel上で生じたイベントを記録し、問題が生じた際に、原因の究明と対応を迅速に行えるようにする。
この辺はログ指針を立てることで、目的を明文化します。
(参考)
ログ出力指針の書き方 – White Box技術部
### どうするか
#### この記事ではログ出力にフォーカスします
ロギングに関しては、二つの段階があると思います。
1. ログ出力
2. ログ検索ここでは、ログ出力に際して、実装者が考えることを最小限にし、ログ出力のたびに毎度考えることを減らすための方
database接続の手書き入力について
#databaseの手書き接続まとめ
環境
xampp
mysqlとApacheが必要です。なぜこの記事を書こうと思ったのか?
主に3つあります。1.databaseのPDO形式が多く手書き入力のサイト記事が全くないこと。
2.Qiitaにいつもお世話になっているから
3.いつでもアクセスできるように記事として残しておきたい
##登録するためのdatabase
まずここで登録するdataを確認
database名:bowring
table:player
id: auto_increment,***int型***
name:***varchar型***“`php:database接続:基本構文(INSERT,UPDATE,DELETEで有効)
//mysqli_connectはホスト名,ユーザー名,パスワード,database名の順で記述すること
$cn = mysqli_connect(“localhost”, “root” , “” , “bowling” );
//utf8は言語を設定:utf-8という記述は×
mysqli_set_
文字列→塩基配列の相互変換ツールをつくってみた(アプリ版)
# はじめに
[この記事](https://qiita.com/am10/items/41d94d5175dbf63fc706)で公開したアプリの中身についてです。[この記事(どこまでショボいアプリがAppleの審査に通るのか試してみた)](https://qiita.com/megumu-u/items/600b9187aa3fec6539af)をみてわりと機能が少なくてもアプリ公開できるのか!と思い正月休みにアプリをつくってみました。
[以前作ったこれ(文字列→塩基配列の相互変換ツールをつくってみた(PHP))](https://qiita.com/am10/items/63b1f747a630a2913841)をアプリにしてリリースしました。
# リリースしたアプリ
つくったアプリは有料です。(目指せ!!トータルダウンロード数25!!!)* Mac, iOS: ¥120
* Android : ¥100## Macアプリ
ターゲット:MacOS Catalina以降[DNA変換](https://apps.apple.com/jp/app/dna%E5
【個人開発サービス】たった6時間で作った、なんでもランキングにしたがる君たち向けのサービス「Cappps(キャップス)」をリリースした
ランキングを作ってTwitterでツイートできるサービス「[Cappps](https://www.cappps.com/)」を作ったので、公開してみました。
どうにか飽きずにリリースまで持っていけました。
今まで作っては飽き作っては飽きで、完成できなかったので、リリースできてよかったです。# リリースしたもの
ランキングメーカー「Cappp
Laravelのバージョンを確認するコマンド
“`
php artisan -V
“`もしくは
“`
php artisan –version
“`
dockerでbrowser-syncを導入して令和のWordPress環境に
![gengou_happyou_reiwa_kakageru.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373315/d5b8bb80-3c35-f2d0-1f9b-cbd452b12477.png)
## 概要
2017年ぐらいまではほぼWPに食わせてもらっていたというぐらいにWP案件をやりまくっていたものの、そこからSPAなどを触るようになりブラウザシンクやローカル構築に甘やかされまくった結果、WPの仕事が辛くて仕方なくなる## クリアライン
・ブラウザシンクを入れてローカルのthemeを変更したらブラウザシンクでブラウザをオートリロードさせて開発スピードをアップしたい
## 問題解決に向けて
docker-comopseを導入する
docker-compose.yml“`
version: “3”services:
db:
image: mysql:5.7
volumes:
– ./db_data:/var
PHP基礎構文 ヒアドキュメントとNowdocの構文と違いについて
# TL;DR
– 基礎構文の1つでもある**ヒアドキュメント**と**Nowdoc**の構文に関して
– 基本的に**ヒアドキュメント**で事足りる印象
– **適切さ**でいうと、変数展開を利用しないのであれば、**Nowdoc**を利用すべきなのかもしれない# ヒアドキュメントとは
文字列を変数に代入、または出力するために利用する機能
機能の特徴柄、主に長い文字列の代入・出力のために利用する事が一般的な利用方法# ヒアドキュメント構文
“`php
$text = ‘hello’;
echo <<< EOL input text. {$text} EOL; /* * 出力結果 * * input text. * hello */ ``` # Nowdoc構文 ```php $text = 'hello'; echo <<< 'EOL' input text. {$text} EOL; /* * 出力結果 * * input text. * {$text} */ ``` # 構文の違い ## 1. エンドトークンにクォートがついてるかどうか -
「Chrome 80」でのクッキー(Cookie)の心構え:SameSite=None; Secure
# 概要
2020年2月にリリースされる予定の Chrome バージョン80でサードパーティクッキー(3rd Party Cookie)の扱いが大きく変わり、端的にいうと制限が厳しくなります。
> Cookie を管理しているデベロッパーの皆さんはすぐに準備状況を評価することが重要です。
と本家、Google 様も注意喚起をしております。
これまでブラウザを利用した計測ツールでは**3rd Party Cookie**w利用した手法が一般的でした。
アフィリエイト(トラッキング)やレコメンド広告表示などがその類です。
しかし、Chrome 80 の影響で、この 3rd Party Cookie の扱いが大きく変わります。
**何も対応しないと 今までの Cookie の埋め込み方法では計測等が失敗してしまう可能性があります。**# Chrome 80 でどうなる?
特定の属性を付与しない限り 3rd Party Cookie にアクセスできなくなります。
>Chrome80 以降、SameSite 値が宣言されていない Cookie は SameSite=Lax として
AWSでランディングページを立ち上げた話【1.導入編】
コンバージョン率(お問合せ・成約のこと)を上げるため、**ランディングページ**を作ったときの話をする。
当方、ホームページ屋が本業では無いが、専門業者に頼むと金も時間も掛かるということで、自分がついでにやることになった。
ランディングページではイメージ画像を多用するが、素材は会社が契約する [Adobe Stock](https://stock.adobe.com/jp/) から購入する。# ランディングページとは
WEB業界用語である。本サイト(ホームページ)とは異なる自己完結型のページのことを言い、**LP**と略される。
ページが縦長で、縦スクロールで読み進めるのが特徴。営業のセールストークを1枚に書き連ねた感じ。
ページ移動があると訪問者が離脱しやすいので、他ページへのリンクは極力つけないのが一般的。# サーバ手配
WordPressだけ動けば良いので、エックスサーバやさくらサーバなどの国産レンタルサーバ(共用タイプ)で良いのかもしれないが、ここでは自由度と拡張性を重視し、AWSで構築する。
とはいえ、[Amazon EC2](https://aws.amazon.
広告ブロックをするクライアントに広告を表示させる
こんにちは!
早速ですが、みなさん!
広告ブロックされてますか?私は利用しています!笑
しかし、あまり公ではありませんが、実際には広告ブロックを回避し、クライアントに表示する方法はあります!
## 検証環境
### PC
– macOS Catalina:`10.15.2`
– Google Chrome Canary:`81.0.4023.0`
– AdBlock(Chrome Extension):`4.1.0`### モバイル
– iOS:`13.3`
– Safari
– 280blocker:`4.1.1`## 仕組み
広告ブロックを行うサードパーティ製のアプリケーションによって細かい仕組みは異なります。
あくまで、今回例に上げる
– Chrome拡張機能のAdBlock
– iOS Safariのコンテンツブロッカーである280blockerを対象としています。
そもそも、広告ブロックを行うにはブロックをする広告を定義した情報が必要です。
その一つとして日本では、[豆腐フィルタ](http://tofukko.r.ribbon.to/ab
PHP変数のスコープ
#PHP変数のスコープ
##はじめに
PHP7のtry catch構文を書いていると変数のスコープについて、理解できていないと思ったので理解を深めるためにまとめました。また他にPHPの変数のスコープの内容の記事がたくさんありましたが、自分のために残しておくために記述しておきます。##try catch構文の変数のスコープで疑問
わからなかったのが以下の記述です。テストAとテストBで違う点は最後の行でechoしている`$test`をtry catchの前で宣言しているかしていないかです。
try catchの前に宣言していない、testA.phpは正常に動くのか。`$test`はtryブロックの中で宣言されているためブロックの外側ではアクセスすることができないのではないかと思いました。
答えは動きます。理由は後述します。“`php:testA.php
SQLやコマンド実行を書いたときのうっかりを警告するための文字列チェック PHPStan Extension を作った
作った。
https://github.com/nishphp/phpstan-safestring-ruleこの前[htmlspecialcharsをチェックする拡張](https://qiita.com/nishimura/items/eb6f4c9040f1b9ddbfed)を作っていて、`PDO->query()`でも同じようなことがしたくなった。
なのでHTMLに限定せずに汎用的にチェックできるようにした。例えば、
“`php:ProductSearchForm.php
*/
public $categoryIds;/** @var ?string */
public $queryString;
}
“`こんな
Laravel DB.com がVer2にアップデート!!ER図→CRUD自動生成ツール
#LaravelDB.comが2020年01月11日 Ver2にバージョンアップ!
[LaravelDB.com](https://laraveldb.com/)
#主なアップデート
###Validation 追加→ テーブル設計に合わせて生成
例でざっくりテーブルをER図で書いてみました。
以下”t_gsusers”テーブルを中心に見ていきます。
生成されたコントローラーのcreate(),edit()に
Laravel6 CSV ダウンロードを streamDownload でやるサンプル
streamDownload を使って CSV をダウンロードするサンプルです。Controller の処理だけ書いておきます。
(簡単なサンプルなので、諸々抜けています。)“`php:controller
public function csvDownload()
{
return response()->streamDownload(function () {
$handle = fopen(‘php://output’, ‘w’);
$list = [[1,’hoge’], [2,’piyo’], [3, ‘fuga’]];
foreach ($list as $row) {
fputcsv($handle, $row);
}
fclose($handle);
}, ‘sample.csv’);
}
“`公式ドキュメント => https://laravel.com/docs/6.x/responses#file-downloads
以下のような