- 1. Laravel テストコードを書いてみよう
- 2. [Laravel] Composer require で依存関係によるエラーを回避する方法
- 3. [PHP]文字列を固定長の他の文字列で埋める(マルチバイト対応)
- 4. 【webpack】sassをバンドルする際に出たエラーの対処
- 5. PHP date UNIXタイムスタンプ
- 6. 【PHP】【エラー】Notice: Array to string conversion in~
- 7. SJIS-macに変換したはずなのにSJIS-winになる
- 8. PHP キー、値で配列をソートしよう
- 9. 【PHP】文字列を固定長に揃える(マルチバイト文字)
- 10. LINEBOTでFlex Messageをつかってリッチに見せよう
- 11. Laravelディレクトリ構成+DBマイグレーション
- 12. AWSとPHPでTwitterOAuthでログイン機能を実装
- 13. OSS PHP SDKを使ってSwooleで機能を掘り下げる
- 14. Laravel8.0入門してみた感想
- 15. Laravel初期設定
- 16. フリーランスとしてアリババクラウドにWebアプリケーションを導入する方法
- 17. アリババクラウドECS上のWP-CLIでWordPressのメディア管理、ユーザー管理、データベース運用
- 18. gitでコンフリクトが発生してしまったら
- 19. 開発用ブランチにMasterブランチの最新コードを取り込む
- 20. php artisan migrate が実行できないとき
Laravel テストコードを書いてみよう
# 目的
– 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.8 | Homwbrewを用いて導入 |
| Laravel バージョン | 8.6.0 | commposerを用いてこちらの方法で導入→[Mac Laravelの環境構築を行う](https://qiita.com/miriwo/items/adaaaee
[Laravel] Composer require で依存関係によるエラーを回避する方法
## 概要
Composer でインストールを行う際、以下のようなエラーが出た時に対処した方法をまとめる。
“`
Installation failed, reverting ./composer.json to its original content.
“`## 環境
Laravelの versionは `6.18.40`。
“`
$ php artisan –version
Laravel Framework 6.18.40
“`## 解決方法
本エラーはインストールするライブラリが他パッケージで別versionで使用している依存関係によるエラーであるため、`composer.json`でインストールを行うversionを指定することで回避可能。
今回は、`laravel/ui`を`1.0`として追記している。“`composer.json
“require”: {
“php”: “^7.2”,
“fideloper/proxy”: “^4.0”,
“laravel/framework”:
[PHP]文字列を固定長の他の文字列で埋める(マルチバイト対応)
文字列を規定の桁数になるまで任意の文字で埋めるために、PHPのstr_pad()を使うことがあるかと思います。
ただし、以下のようなマルチバイト文字をstr_pad()にかけて指定した桁数の文字列を出力しようとしても、バイト数で計算されるため意図した通りに出力されません。“`php
echo str_pad(‘東京’, 8, ‘●’, STR_PAD_RIGHT).PHP_EOL;
echo str_pad(‘名古屋’, 8, ‘●’, STR_PAD_LEFT).PHP_EOL;
echo str_pad(‘大阪’, 8, ‘●’, STR_PAD_BOTH);
“`出力結果は以下の通り…
8桁の文字列が出力されてほしいところですが、先に述べたように意図した通りになりません。
その上、文字化けになってしまいました。“`html
東京�
名古屋
�大阪�
“`そこで、マルチバイト文字にも対応したmb_str_pad()を作成しました。
使い方はstr_pad()とほとんど変わりありませんが、バイト数ではなく文字数で計算するようになっています。“`php
【webpack】sassをバンドルする際に出たエラーの対処
##環境
PHP 7.3.8
Laravel 6.18.40
webpack 4.27.1## TypeError: text.forEach is not a function … というエラー
Docker開発環境下で、`npm run watch-poll` でビルドを試みるも以下エラーで失敗する。
“`
ERROR in ./resources/scss/app.scss
Module build failed (from ./node_modules/css-loader/dist/cjs.js):
TypeError: text.forEach is not a function
at /var/www/node_modules/extract-text-webpack-plugin/dist/loader.js:145:16
(略)
“`
結論から言うと、sassのバンドルには`css-loader`、`node-sass`、`sass-loader`、`style-lo
PHP date UNIXタイムスタンプ
# date
構文
date(フォーマット, UNIXタイムスタンプ)
[例]
date(‘Y-m-d’, time()); 2020-09-28
Yは、年を4桁で表します。
mは、月を2桁で表します。
dは、日を2桁で表します。[例2]
date(‘H:i:s’,time(); 21:51:30
Hは、時を2桁で表します。
iは、分を2桁で表します。
sは、秒を2桁で表します。[例3]
date(‘l’, time()); Monday
lは、曜日をを表します。[例4]
date(‘W’, time()); 20
一年に内の何週目かを表します。[例5]
echo date(‘Y-m-d l’) . PHP_EOL;
現在日時を表示したい場合は、time()を省略する事が可能です。その他も沢山あるみたいなので、必要な時に調べて使いましょう。
【PHP】【エラー】Notice: Array to string conversion in~
PHPについて学習内容を備忘録としてまとめます。
実装中に起きたエラーについて解決法まで記載します。下記のようなマイページでユーザーの投稿数を表示させる際にエラーが発生しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597913/119f244e-d121-2516-1aca-87535e87ee5f.png)
#起きた問題
ユーザーの投稿数を取得し表示したら下記のようなエラーが発生しました。“`
Notice: Array to string conversion in C:\xampp3\htdocs\user\user_mypage.php on line 22
Array
“`
投稿数を表示させる箇所に`Array`と表示されおり、投稿数は表示されていませんでした。
該当のコードはこちらになります。“`php
投稿数:’.get_user_count(‘post’,$current_user[‘id’]).’‘;
SJIS-macに変換したはずなのにSJIS-winになる
# SJIS-macに変換したはずなのにSJIS-winになる
StackOverflowに[mb_detect_encoding does not detect SJIS-mac?](https://stackoverflow.com/questions/57984049/mb-detect-encoding-does-not-detect-sjis-mac/63772728)という投稿がありました。
![01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/26088/9b35590b-72a4-975f-769e-08ac642d00cd.png)
ということらしいので、[UTF-8からSJIS-macに変換](https://3v4l.org/Dm4sA)してみましょう。
“`php
$utf8Str = “❶❷❸❹❺”;$sjisStr = mb_convert_encoding($utf8Str, ‘SJIS-mac’);
echo(mb_detect_encoding($sj
PHP キー、値で配列をソートしよう
# sort rsort
## sort
配列の値を小さい順に並び変えてくれます。
## rsort
配列の値を多い順に並び変えてくれます。※キーがある場合は消されて連番になってしまいます。
そこで!↓
# asort arsort
asort arsortはキーを保持したまま、並び替えてくれます。# ksort krsort
ksort krsortはキーの方を並び変えてくれます# array_column
引数に渡した配列の中から、単一のカラムを取り出すための関数です。
[例]
array_colimn($配列, $カラム)
![スクリーンショット 2020-09-28 18.40.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/663122/1a795f69-0de0-3ab4-8b1f-81206cfd44af.png)
![スクリーンショット 2020-09-28 18.40.52.png](https://qiita-image-store.s3.ap-northeast
【PHP】文字列を固定長に揃える(マルチバイト文字)
## はじめに
マルチバイト文字列を指定の長さで揃えたい## sprintf
“`php
sprintf(‘%-10s’, ‘abc’); // “abc ”
sprintf(‘%-10s’, ‘あいうえお’) // “あいうえお”
“`
sprintfではマルチバイト文字のときに上手く対応できない参考:[PHP: sprintf – Manual](https://www.php.net/manual/ja/function.sprintf.php)
## str_pad
“`php
str_pad(‘abc’, 10, ‘ ‘,STR_PAD_RIGHT) // “abc ”
str_pad(‘あいう’, 10, ‘ ‘,STR_PAD_RIGHT) // “あいう ”
“`
バイト数換算で計算されるので、マルチバイト文字の場合、指定が上手く対応できない参考:[PHP: str_pad – Manual](https://www.php.net/manual/ja/function.str-pad.php)
## 以下のような関数を作
LINEBOTでFlex Messageをつかってリッチに見せよう
![スクリーンショット 2020-09-28 2.06.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/644490/4a8c36e2-f613-a586-9788-176483570309.png)
以前飲食店の予約LINE BOTを作成したのですが、Flex Messageがかなり好評だったので共有したいと思います
Flex Messageってこんなやつでとりあえず見た目が洒落になる
カスタマイズ性も抜群だからLINE BOT作るときは是非使ってみて欲しい公式にシュミレータがあるので、そちらを参考にして
この記事のコードを少し変えれば簡単にリッチなメッセージを楽しめると思いますー
https://developers.line.biz/flex-simulator/公式ドキュメントはこちらから
https://developers.line.biz/en/docs/messaging-api/
リッチメニューは完全にGUIでできるので下のページを確認してください
https://mana
Laravelディレクトリ構成+DBマイグレーション
今回はLaravelディレクトリ構成+DBマイグレーションを説明していきます。
#ディレクトリ構成
![image.png](https://i.gyazo.com/2fb41000ba954cf5b2cfd12cf52fcd04.png)| ディレクトリ名 | 役割 |
|:-:|:-:|
| app | アプリのメインとなるところ |
| bootstrap | 初期処理やキャッシュなど |
| config | アプリの設定 |
| database | データベース(マイグレーション) |
| public | 画像、JS、CSSなど |
| resources | bladeなど(HTML) |
| routes | アプリのURL設定 |
| storage | セッションやログ |
| tests | テスト用 |
| vendor | Comoposerの依存内容 |#マイグレーション
##マイグレーションとは
SQLを直接使わなくても、データベースを管理できるLaravelの仕組みです。
##マイグレーションファイル
AWSとPHPでTwitterOAuthでログイン機能を実装
TWitterOAuthでログイン機能実装が思ったより苦戦したので、エラーになったポイントを伝えていきます。
AWS上でやっていきます。
#AWSでComposerをインストール①下記手順を実施してPHPを入れる。(実施済みの方は飛ばす。)
[AWS EC2 AmazonLinux2 PHPをインストールする](https://qiita.com/miriwo/items/7d94303e7185e4118f52)②公式のインストール方法に記載されているコマンドを実行してcomposer本体を取得する。
コマンドは変更になる可能性があるので最新のコマンドは公式ページをご確認してください。“`
php -r “copy(‘https://getcomposer.org/installer’, ‘composer-setup.php’);”
php -r “if (hash_file(‘sha384’, ‘composer-setup.php’) === ‘795f976fe0ebd8b75f26a6dd68f78fd3453ce79f32ecb33e7fd087d39bfe
OSS PHP SDKを使ってSwooleで機能を掘り下げる
**Swoole**はPHPの非同期・並列リクエストのための高性能なネットワーク通信エンジンです。
*本ブログは英語版からの翻訳です。オリジナルは[こちら](https://www.alibabacloud.com/blog/swoole-based-simple-http-server-with-oss-sdk_347088)からご確認いただけます。一部機械翻訳を使用しております。翻訳の間違いがありましたら、ご指摘いただけると幸いです。*
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/97250e97-d561-6f7f-abef-27747cf0646e.png)
#序章
Swooleは、最近ではコーダーの世界で新たな “最高の言語 “として定着しています。公式に説明されているように、PHPの非同期・並列リクエストのための高性能なネットワーク通信エンジンです。そのコンパイルは、PHPの非同期マルチスレッドサーバ、非同期TCP/UDPネットワーククライアント、非
Laravel8.0入門してみた感想
ララベル.かわいいなまえだね.
でも「Web職人のためのフレームワーク」みたいなキャッチコピーでかっこいいね.ちゅき(._.)
というわけで入門した感想を述べます.
# 感想1. 環境の構築 → めちゃ簡単
僕はこれまでRuby on RailsとReactに触れたことがあります.
使ってるOSはWindows10.
するとどうなるか.__環境構築で死す__
__コマンドプロンプトにerrorの嵐__
僕はもう疲れました.
こんなことならフレームワークなんか使わない方が早いや.
どうせザコだし僕.そう思ってたある日,なんとなくPHPを使い始めて,それとなくLaravelにたどり着きました.
「どうせまた環境構築で死すんだろうな...」
半ばあきらめながらネットに落ちている記事を見ながらXAMPPやらLaravelやらを入れました.…は?
__一度もエラーせず構築できた.__
こんなことがあるんですね.
もうこの時点で僕のハートはLaravel様の者でした.「Windows想いなLaravel,好きです.」
僕はそう呟いて,そっと眠りについた.(え?
Laravel初期設定
Laravelでプロジェクトを作成していく際の初期設定をやっていきます。
ここではLaravel ,Composerを導入し終えた状態で進めていきます。また、使うPCはMacです。#1.初期設定(ターミナル)
まず、ターミナルでMAMPのhtdocs内にプロジェクトを作成していきます。“`terminal
$ cd /Applications/MAMP/htdocs
“`
移動できたら、下記のコマンドを入力してblogというアプリを作成します。“`
$ composer create-project laravel/laravel –prefer-dist blog
“`
最後に Application set key successfully.と表示されれば、
MAMPのhtdocs内にblogというプロジェクトを作成できました。
次に作成したmyblogに移動して、初期設定を行います。“`terminal
$ cd blog
“`
移動できたら初期設定を行います。
権限の設定です。Laravelではログ
フリーランスとしてアリババクラウドにWebアプリケーションを導入する方法
この記事を通して、私がクラウド上にWebアプリケーションをデプロイする際に使用しているベストプラクティスを共有したいと思います。
**本ブログは英語版からの翻訳です。オリジナルは[こちら](https://www.alibabacloud.com/blog/my-best-practices-for-deploying-a-web-application-in-alibaba-cloud_593826)からご確認いただけます。一部機械翻訳を使用しております。翻訳の間違いがありましたら、ご指摘いただけると幸いです。**
この記事は[Medium Blogging Platform](https://medium.com/@liptanbiswas/best-practices-for-deploying-a-web-application-in-alibaba-cloud-ed37a6dc01?spm=a2c65.11461447.0.0.3a3757aaSRdB8Y)でも公開されています。
この記事では、私がウェブアプリケーションをクラウド上にデプロイする際に使用しているベストプ
アリババクラウドECS上のWP-CLIでWordPressのメディア管理、ユーザー管理、データベース運用
この3部構成のチュートリアルでは、WP-CLIで**WordPress**の高度な管理を設定する方法を説明します。パート2では、アリババクラウドECS上のWP-CLIで**WordPress**を管理することに焦点を当てています。
*本ブログは英語版からの翻訳です。オリジナルは[こちら](https://www.alibabacloud.com/blog/advanced-wordpress-management-using-wp-cli-on-alibaba-cloud-ecs-part-2_591110)からご確認いただけます。一部機械翻訳を使用しております。翻訳の間違いがありましたら、ご指摘いただけると幸いです。*
[Alibaba Cloud Tech Share](https://www.alibabacloud.com/ja/campaign/techshare)執筆者のJeff Cleverley著。[Tech Share](https://www.alibabacloud.com/ja/campaign/techshare)は、クラウドコミュニティ内で技術的な知識や
gitでコンフリクトが発生してしまったら
コンフリクトとは、作業用ブランチさんとmasterブランチさんとの間にどんどん距離ができてしまってる状態のこと。
自分が作業してる間に、masterは更新されていきます。
気づかないうちに、お互いがどんな作業をしているのか知らないまま進んでしまっている状態なんです。
【コンフリクトをなくす方法】
1 まずどのファイルがコンフリクトが発生してるのか確認する
“`git status
“`2 コンフリクトが発生してるファイルをmasterと比較して修正する
3 修正したファイルを追加してコミット
“`git add .
git commit -m “コンフリクト解消”
“`4 作業用ブランチをプッシュする
“`git push origin 作業用ブランチ名
“`5 git merge master
開発用ブランチにMasterブランチの最新コードを取り込む
【手順】
※ もし、作業途中のものでcommit出来るものがあればcommitしておく1 masterブランチへ移動
“`git checkout master
“`2 git pullでmasterを最新に
“`git pull origin master
“`3 開発用ブランチへ移動
“`git checkout 開発用ブランチ
“`4 mergeコマンドでmaserの内容を取り込む
“`git merge master
“`5 取り込んだものをリモートにpush
“`git push origin 開発用ブランチ
“`
php artisan migrate が実行できないとき
Laravelでマイグレーションを実行しようとしたが、実行できない…
エラー内容
>SQLSTATE[HY000] [1045] Access denied for user ‘root’@’localhost’直訳すると、root@localhostのユーザーが定義されてませんという感じ。
どうやらmysqlにうまく接続できてないっぽいですね。
【原因】
同じテーブルを2つ作成してしまっていた。
migrationでのテーブル作成と、ターミナル上でcreate table文を使っても作成していた。【解決方法】
ターミナル上で作成したテーブルを削除すればok。Laravelを使い始めたばかりでマイグレーションに関してよくわかっていなかった。。。?