- 1. php artisan sail:install にてCould not open input file: artisan
- 2. GitLab CI/CD × php-cs-fixerを利用してPHPコードを自動フォーマットする
- 3. 【Laravel】Postgresに接続するための方法
- 4. 【PHP8.2】PHPの乱数がさらに改善される
- 5. PHPerが学ぶGo言語① 変数・定数・配列
- 6. 業務に使いそうなPHP8
- 7. Node.js 12 actions are deprecated. For more information see: https://github.blog/changelog/2022-09-22-github-actions-all-actions-will-begin-running-on-node16-instead-of-node12/. Please update the following actions to use Node.js 16: shivammathur/setup-php
- 8. 【Laravel】URL情報から値を取得する方法(クエリ文字列)
- 9. Code coverage driver not available.
- 10. 【Laravel】BLOCSで本管理アプリを作る – 本の一覧表示
- 11. Your lock file does not contain a compatible set of packages. Please run composer update.
- 12. 【Laravel】BLOCSで本管理アプリを作る – 本の新規登録と編集
- 13. laravel ‘timezone’ => ‘Asia/Tokyo’,【config/app.php】
- 14. ラズパイにWordPressを構築するためのPHPモジュールを導入する
- 15. PHPをかじった自分がjsの非同期処理を理解してみる
- 16. ComposerのPharパッケージという選択肢
- 17. ラズパイにPHP8.2を導入した
- 18. PHPerが学ぶPython③ 例外処理
- 19. Laravel9でcreate projectしてからコードを描き始めるまでの自分的ルーティン
- 20. falseからの配列自動生成が非推奨になっていたのでsqliteで困った
php artisan sail:install にてCould not open input file: artisan
“`
php artisan sail:install
“`
と打ち込むと
“`
Could not open input file: artisan
“`
とエラーが返ってくる。ググったら
どうやらディレクトリが間違っていたみたい。
artisanファイルがあるディレクトリに移動して再度行うと動作しました。メモとして残します。
GitLab CI/CD × php-cs-fixerを利用してPHPコードを自動フォーマットする
# 概要
やろうと思ったきっかけとしてはこちら↓
https://qiita.com/g-iki/items/b81f70d6b183bf3f8540#comment-45d0f5fc2cb774f84a04
php-cs-fixerを利用してコードの自動成形を行いたいが、個々のIDE上でフォーマットを行ったつもりでもかかっていなかったり、独自の設定を行ってしまい、結局バラバラになってしまうこともありました。
設定が一定であるサーバ上でフォーマットをかけて、フォーマットがかかっていないコードのコミットだった場合CI側で自動でフォーマットをかけてコミットを行うことで確実にフォーマットがかかったような状態を目指します。
(git hookでフォーマットをかける方法もありますが、これも環境依存となってしまうため、GitLab CI/CDで行う方法を選択しました。)## 前提
– ソースはphpを対象とします
– php-cs-fixerを使用してphpコードのフォーマットを行います
– 参考:[ソースコードの“赤ペン先生”PHP-CS-Fixerのインスト
【Laravel】Postgresに接続するための方法
LaravelからPostgreSQLへの接続方法について解説します。
【Laravelのバージョン】
9.42.2
【PHPのバージョン】
8.1.13
【検証環境】
■Windows11【設定の概略】
1.PHP本体に配置してある設定ファイル「php.ini」で接続するデータベースドライバを指定する
2.Laravel本体に配置してあるデータベース情報ファイル「database.php」を変更する
3。Laravel本体に配置してある環境変数に関する情報ファイル「.env」ファイルを変更するそれでは、順番に説明します。
# 1.PHP本体に配置してある設定ファイル「php.ini」で接続するデータベースドライバを指定する
1-1)PHP本体に配置してある設定ファイル「php.ini」をテキストエディタ(VS Codeなど)で開きます。
![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1169664/fcf57181-7299-c1e9-9c1b-d30fa52746cf.png)
【PHP8.2】PHPの乱数がさらに改善される
[PHP8.2でPHPの乱数がとても改善する](https://qiita.com/rana_kualu/items/ab82a9c6dbd2e7c6edd0)という話をしましたが、RFCが採択された後になって幾つか問題や不足が出てきたため、それらの対応を行うフォローアップのRFCが提出されました。
ということで以下は該当のRFC、[Random Extension Improvement](https://wiki.php.net/rfc/random_extension_improvement)の紹介です。
7つの提案があったのですが、全て採択されています。なお、このRFCはPHP8.2向けなので、2022/12/08にリリースされたPHP8.2から既に使用可能です。
# [PHP RFC: Random Extension Improvement](https://wiki.php.net/rfc/random_extension_improvement)
## Introduction
先日の[Random Extension 5.x](https://wiki.
PHPerが学ぶGo言語① 変数・定数・配列
どうも、豚さんです。
今回はGo言語に関して書いていきます。今回もPythonみたいに深く触れずに記事を書いていきたいと思います。
Pythonの記事同様、変数から配列の記事で始めていきます。公式サイトのサンプルソースを変えて使っています。
プログラムは *func main() {}* の中を見てください。
**あくまで変数〜配列についてです。**
それ以外はまだ理解していないので、ご了承ください。※ 注意:内容はPHPか何かの言語を書いたことがある方向けなので、
説明を割愛している箇所は多々ありますので、ご了承ください。**go version go1.19.4 darwin/amd64**
# 1. 変数
変数宣言時は「var 変数名 型名」で宣言します。
値を代入しない時の初期値はint型だと0、とstring型だと””です。
“`sample.go
package mainimport “fmt”
func main() {
// 型が明確な場合は、型の記載が不要
var num int
va
業務に使いそうなPHP8
豚野郎です。(ヌルッ!)
PHP8の変更点について書いていきます。
この記事は個人的にLaravelで、
小〜中規模開発で使う前提で何となく必要そうな変更点を書いていきます。また、自分が理解できるまでの範囲のものを記載しました。
**ここでは以下2点に関しては記載しません。**
・JITコンパイラー
・新しい定義済みの関数あくまで、**個人的に業務、且つLaravelで使いそうだと思う構文の変更点**について書いていきます。
**PHP 8.1.14**
# 1. コンストラクタのプロパティ昇格機能
まずPHPの公式にもタイトルと同じことが書かれていませんでしたが、
**私はタイトルの意味がよくわかっていませんでした。**
そこで、PHPのプロパティについて調べました。https://wepicks.net/phpref-oop-property/#:~:text=%E3%83%97%E3%83%AD%E3%83%91%E3%83%86%E3%82%A3%20%E3%81%AF%20%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82
Node.js 12 actions are deprecated. For more information see: https://github.blog/changelog/2022-09-22-github-actions-all-actions-will-begin-running-on-node16-instead-of-node12/. Please update the following actions to use Node.js 16: shivammathur/setup-php
警告がでるためメモ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/435735/cfbaab0d-ca23-d2bb-85eb-0cbb3b851cd3.png)
Node.js 12 actions are deprecated. For more information see: https://github.blog/changelog/2022-09-22-github-actions-all-actions-will-begin-running-on-node16-instead-of-node12/. Please update the following actions to use Node.js 16: shivammathur/setup-php@15c43e89cdef867065b0213be354c2841860869e# 教えてSenpai
`shivammathur/setup-php@v2`を使うとよいです
“`yaml:laravel.yml
jo
【Laravel】URL情報から値を取得する方法(クエリ文字列)
## はじめに
URL情報を使ってコントローラ側に値を渡す方法について説明します。
今回は、クエリ文字列を使用して実現していきます。
使用するLaravelのバージョンは、`9.43.0`です。## クエリ文字列とは
クエリ文字列とは、URLの後ろに「?◯◯=✕✕」といった形式で書かれた文字列のことです。
これを使ってコントローラに値を渡すことができます。(GET送信)## コードを書いてみる
クエリ文字列を使って、URL情報から値を取り出して画面表示させるコードを書いてみます。下記URLを使って名前と年齢が表示されることを確認してみます。
期待する表示は、名前が「テスト太郎」、年齢が「24」と表示されることです。
クエリ文字列をURLに設定する方法は、URL末尾に`?`をつけて`項目名=値`です。
複数の値を設定する場合は、`&`を使ってつなげていきます。例) http://127.0.0.1:8000/test?name=テスト太郎&name=24
### viewファイル
`{{ $name }}`と`{{ $age }}`が値を表示させる部分になります。
Code coverage driver not available.
coverageするとエラーがでるのでメモ
“`bash
php artisan test –coverageERROR Code coverage driver not available.
“`![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/435735/fc662b22-b687-2d38-1ff3-fd7ff176377c.png)
# 教えてSenpai
Xdebugをインストールでなおりました。 https://xdebug.org/wizard に`phpinfo();`か`php -i`を貼り付けてインストールしましょう
“`bash
sudo apt install -y php-dev autoconf automake \
&& wget https://xdebug.org/files/xdebug-3.2.0.tgz \
&& tar xf xdebug-3.2.0.tgz \
&& cd xdebug-3.2.0 \
【Laravel】BLOCSで本管理アプリを作る – 本の一覧表示
# 何を作るのか
BLOCSはLaravelで使えるテンプレートエンジンです。BLOCSを使って、簡単な本管理アプリを作ってみたので、ポイントを紹介します。本管理アプリでは、以下の3つの機能を作りました。当記事では、本の一覧表示を開発します。新規登録と編集機能は、[こちら](https://qiita.com/hyada/items/11597f88102ed1c45407)をご参照ください。1. 本の新規登録
2. 本の編集
3. 本の一覧表示![スクリーンショット 2023-01-08 1.12.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2962814/ef29c212-a009-be83-4c46-e450d56c4d68.png)
当記事では、Bladeでの開発との違いにポイントを絞って説明します。開発したLaravelアプリのソースは[GitHub](https://github.com/blocs/example_books)で公開していますので、全体のソースは[こちら]
Your lock file does not contain a compatible set of packages. Please run composer update.
GitHub Actionsでエラーが出たためメモ
“`bash
Annotations
2 errors and 1 warning
laravel-tests
Your lock file does not contain a compatible set of packages. Please run composer update.Problem 1
– ramsey/collection is locked to version 2.0.0 and an update of this package was not requested.
– ramsey/collection 2.0.0 requires php ^8.1 -> your php version (8.0.26) does not satisfy that requirement.
Problem 2
– symfony/console is locked to version v6.2.3 and an update of this package was not r
【Laravel】BLOCSで本管理アプリを作る – 本の新規登録と編集
# 何を作るのか
BLOCSはLaravelで使えるテンプレートエンジンです。BLOCSを使って、簡単な本管理アプリを作ってみたので、ポイントを紹介します。本管理アプリでは、以下の3つの機能を作りました。当記事では、新規登録と編集機能を開発します。1. 本の新規登録
2. 本の編集
3. 本の一覧表示![スクリーンショット 2023-01-08 1.12.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2962814/ef29c212-a009-be83-4c46-e450d56c4d68.png)
当記事では、Bladeでの開発との違いにポイントを絞って説明します。開発したLaravelアプリのソースは[GitHub](https://github.com/blocs/example_books)で公開していますので、全体のソースは[こちら](https://github.com/blocs/example_books)をご参照ください。
https://github.com/bloc
laravel ‘timezone’ => ‘Asia/Tokyo’,【config/app.php】
`config/app.php`に`’timezone’ => ‘Asia/Tokyo’,`と記載すると
`php artisan make:migration create_ramens_table`したときのファイル名がJSTになるのでオススメ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/435735/b039f454-e959-202a-463e-5d05e758137f.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/435735/fa1677c0-699d-9869-eb7b-d19f5d2ee7b7.png)
ラズパイにWordPressを構築するためのPHPモジュールを導入する
# 機能要件
WordPress構築に必要な機能要件は、以下のページに記載されている。| 必須モジュール | 初期導入済 | 内容 |
|:-:|:-:|:-|
| json | ○ | 他のサーバーとの通信やJSON形式のデータの処理に使用。PHP8.0以上なら標準でインストール済み。 |
| mysqli | ○ | MySQLやMariaDBとのデータ連携に必要。 || 必要モジュール | 初期導入済 | 内容 |
|:-:|:-:|:-|
| curl | | httpリクエストを扱うためのモジュール。 |
| dom | | DOM操作を可能にするためのモジュール。 |
| exif | ○ | 画像に保存されているメタデータを操作する。これを利用するためには関連モジュールであるmbstringのインストールも必要。 |
| fileinfo | ○ | ファイルのMIMEタイプ検知に使う。 |
| hash | ○ | パスワードや更新
PHPをかじった自分がjsの非同期処理を理解してみる
# 概要
– PHPで同期処理しか書いてこなかったので非同期処理がワケワカメだった。そんな自分がなんとかして非同期処理を理解してみたのでまとめてみる。
# ベースとなるコード
– 今回、下記の様なjsのコードを用意しました。
“`js
console.log(“——————–“);function a() {
console.log(“関数aです”);
b();
}function b() {
console.log(“関数bです”);
c();
}function c() {
console.log(“関数cです”);
}a();
“`– 関数aが関数bを呼び、関数bが関数cを呼んでいます。
– 上記を実行すると下記のようにコンソールに出力されます。“`
——————–
関数aです
関数bで
ComposerのPharパッケージという選択肢
みなさんはPHPで書かれたツール類などを、どうやってインストールしているでしょうか。
まあComposerを使うのが基本ではあるのですが、 [Phive](https://phar.io/)みたいなツールもあったり、Composerを使うとしても `composer global require` を使うとか、`composer require –dev`を使うとか、[Composer bin plugin](https://github.com/bamarni/composer-bin-plugin)を使うとかの方法がありますよね。
PHPStan開発者のOndřejはこのように言っています。
How to install and run PHPStan?
* composer-bin-plugin ❌
* Phive ❌
* jakzal/phpqa ❌Each of these methods has downsides.
Simply run composer require –dev phpstan/phpstan ✅ in your project and get on with your day.
— Ondřej Mirtes (@OndrejMirtes) June 28, 2022
PHPStanのインストール方法の選択肢については別に記事を書いています。
https://zenn.dev/tadsan/articles/00bf49f8ec2f16
PHPStanについては上の記事にも書きましたが、`composer require –
ラズパイにPHP8.2を導入した
# PHP8.2は簡単には入れられない
標準リポジトリを探してもPHP8.2は見つからない。
なんなら8.1もない。8.0はあるけど面白くない。
“`
# apt search php8.2
ソート中… 完了
全文検索… 完了
“`# 前提パッケージを導入
PHPをインストールするためには色々と前提パッケージを入れる必要がある。## build-essential
gccやmakeなど、開発に必要なビルドツールをまとめてインストールできる。
もしかしたら最初から入ってるかもしれない。
“`
# apt -y install build-essential
“`## apt-transport-https
aptでhttp通信ができるようにするパッケージ。デフォルトだとhttp通信ができないようである。最新のaptだと対応しているらしいので要らないかもしれないらしい。
“`
# apt -y install apt-transport-https
“`## ca-certificates
https通信するためのCA証明書。これがないとhttps通
PHPerが学ぶPython③ 例外処理
おいっす。豚野郎です。
Pythonの変数・配列・クラスの説明は書いてきたので、
最後に例外処理の記事を書けば言語としての基礎は全て書いたことになるのかなと思います。そのため今回は、基礎としては最後として「例外処理」について書いていきます。
※ 注意:内容はPHPか何かの言語を書いたことがある方向けなので、
説明を割愛している箇所は多々ありますので、ご了承ください。**バージョン:3.9.1**
【過去の記事】
■ PHPerが学ぶPython① 変数・配列・タプルhttps://qiita.com/pig_buhi555/items/301f7c8eabd1a5fd121f
■ PHPerが学ぶPython② クラス
https://qiita.com/pig_buhi555/items/ab6108d6fc03ccfffbe4
# 1. 実行時の例外
以下が発行する例外の種類です。
①. NameError:変数定義されていない時
②. ZeroDivisionError:0で割り算を行った時
③. TypeE
Laravel9でcreate projectしてからコードを描き始めるまでの自分的ルーティン
# この記事は?
表題の通りですが、最近Laravel触っていないので、急に触るときに「あれこれどうやってセットアップしてたっけ?」が増えてきたので、まとめておきます。
# 環境
– OS
– macOS Monterey 12.6.2
– PHP
– 8.0.x
– Laravel
– 9.46.0
– IDE
– PhpStorm 2022.3.1さくらのサーバがかたくなにPHP8.1に対応してくれないので、今回は8.0をターゲットに書きます。
# 各種セットアップ
## PHPのインストール
自分はanyenv経由でphpenvを入れ、homebrewでインストールしたPHPの各種バージョンをphpenvのディレクトリにシンボリックリンクして使っています。簡単にやり方をまとめます。
## anyenv, phpenvのインストール
まとまっているサイトが沢山あるので省略。
https://qiita.com/hamakou108/items/4744818dd166191c3e6b
このQiita記事にも書かれていますが、ビ
falseからの配列自動生成が非推奨になっていたのでsqliteで困った
お絵描き掲示板[noReita](https://github.com/sakots/noReita)をつくっています、さこつです。
今回表題の件で困ったことが解決したので記事にしようと思います。
## 何が起きたのか
実はPHP8.1で起きてたらしいんですけど、([falseから配列の自動生成が非推奨になりました。](https://qiita.com/rana_kualu/items/e350b8ff80f929626eb9#automatic-conversion-of-false-into-an-empty-array-on-write-operands-is-deprecated))
自分はsqlでこういうことをしていました。
“`index.php
//最新コメント取得
$sqlw = “SELECT * FROM tlog WHERE thread=0 ORDER BY tid DESC LIMIT 1”;
$msgw = $db->prepare($sqlw);
$msgw->execute();
$msgwc = $msgw->fetch();
“`