- 1. 模写「How To Make Login&Register Form With User &Admin Page Using -CSS -PHP -MySQL Database」
- 2. infinityfreeでdeploy方法(PHP非商用)
- 3. DockerでのLaravel環境構築時のCould not deleteエラー解決法
- 4. 【PHP】特定のクラスであるかを型演算子で判定して条件分岐させる
- 5. 【Laravel】PHPバージョンアップ後にphp.iniを確認する
- 6. ITエンジニアなのにまだ投資やってないの?ChatGPTでクオンツシステム作って儲けようぜpart2
- 7. Apache+PHPサーバーのWebサイトをAWS Lambdaで動かす
- 8. 新: Laravel SQLの実行クエリログを出力する
- 9. フットサルコート予約webアプリを真似して作ってみる
- 10. Laravel で使いたい便利なパッケージ4選 (Pint, Larastan, Telescope, Insights)
- 11. [Laravel 10.15] 生SQLを実行する必要がある方注目!toRawSql()でEloquentからバインド値が組み込まれたSQL文を出力できるようになった!
- 12. PHP/Laravelで使える!?OpenAI APIクライアント
- 13. 4ステップでLaravelで作ったウェブサイトをさくらサーバーで公開する
- 14. CSVファイルのMIMEタイプはPHPバージョンで変わるようだ
- 15. Laravel10で[Class “Database\Factories\UserFactory” not found]が起こってSeederが実行できない
- 16. 【Laravel】リソースコントローラーについて
- 17. 【PHP8.3】Overrideが明示できるようになる
- 18. PHPの基礎(仮)
- 19. ファサードとは
- 20. 【Laravel】サービスプロバイダとは、使い方や作成方法
模写「How To Make Login&Register Form With User &Admin Page Using -CSS -PHP -MySQL Database」
模写参照サイト
順番
1.admin page
(1)html(admin_page.php)
(2)css(style.css)
2.user page
(1)html(user_page.php)
(2)css(style.css)
3.register form
(1)html(register_form.php)
(2)css(style.css)
4.login page
(1)html(login_form.php)
(2)css(style.css)
5.register form(DB接続)「POSTメソッド」
6.login form(DB接続)「POST,SESSION」
7.admin page「SESSION」
8.user page「SESSION」
9.logout「SESSION」
1.admin page (html&css) [2023年6月29日
infinityfreeでdeploy方法(PHP非商用)
手順(極簡):
1.infinityfreeに登録する。
2.(creat account)アカウントを作成する:自分の好きな名前を使用して構いません。
3.Database Nameを記入
4.MYSQL Databasesを開く。
5.creat Databaseをクッリク(データベースを作成する)。
6.作成したデータベースを開く。
7.自分のデータベースをアップロードする。
8.ホームページの情報に基づいて、自分のPHPファイルを開き、以下の内容を変更する。
①USERNAMEユーザー名
②PASSWORDパスワード
③HOSTNAMEホスト名
④DATABASE NAMEデータベース名
8.(file manager)ファイルマネージャを開く。
9.自分のファイルをアップロードする。
10.ラベル(LABEL)の場所のリンクをコピーし、自分のログイン画面を開く。ログイン画面のリンクもコピーする。
11.今後は直接ログイン画面のリンクを提供しても構いません。
DockerでのLaravel環境構築時のCould not deleteエラー解決法
# はじめに
こんにちは。今回はDockerを使用してLaravelの開発環境を構築する際に遭遇したエラーとその解決策についてお話します。
`create-project`を実行した後に発生する`[RuntimeException] Could not delete ディレクトリ`というものです。
このエラーが発生して、Laravelのインストールが正常に完了せずドツボにはまっていました。# 結論
`composer config –global process-timeout (任意の秒数)`を実行してタイムアウト時間を延ばす。
# 記事の対象者
Laravelのインストール中に`could not delete`エラーに直面して困っている方。
# コンテナの中身
phpコンテナとnginxコンテナのみのシンプルな構成です。
# エラー解消の詳細
まず、`Could not delete`エラーの原因を調査しました。その結果、以下の3つの可能性が挙がりました。
1. メモリーの問題
2. ネットワークの問題
3. パーミッションの問題しかし、Docker内
【PHP】特定のクラスであるかを型演算子で判定して条件分岐させる
変数に入っているインスタンスがどのクラスから作ったものかで、処理を分岐させたいことがあるかと思います。
その場合、型演算子 **instanceof** を使うと良いです。
instanceofは、対象のインスタンスがどのクラスかをbooleanで判定してくれる演算子です。
具体的な使い方としては、以下です。
対象のクラス名と比較して、同じクラスからできたインスタンスの場合、trueを返します。
“`php
// $objectはインスタンスが入っている変数
// TargetClassはクラス名
$object instanceof TargetClass
“`では、具体的に本記事のタイトルでもある、条件分岐させる例を以下に示します。
例えば、アカウントがユーザー(User)と管理者(Admin)の2種類があるとします。
その2つのクラスから作ったインスタンスがあった場合、
どちらかによって処理を分岐させたい場合は以下のようにします。“`php
Class User
{
}Class Admin
{
}$account = new User();
if (
【Laravel】PHPバージョンアップ後にphp.iniを確認する
# 詰まったこと
AzureにLaravelをデプロイする準備をしている中、ローカル開発環境のLaravelは7.2.1を使っているのにAzureのAppServiceの設定をPHP8.0.1にしてしまったので、ローカルもPHP8.0.1にあげた。conposer.jsonと環境変数を変えて、いざcomposer updateを実行して出たエラーに時間を取られたので最終的な解決方法メモ
“`
composer update[Composer\Exception\NoSslException]
The openssl extension is required for SSL/TLS protection but is not available. If you can not enable the openssl extension,
ITエンジニアなのにまだ投資やってないの?ChatGPTでクオンツシステム作って儲けようぜpart2
## 前回まで
ITエンジニアなのにまだ投資やってないの?ITエンジニアならChatGPTでクオンツシステム作って儲けようぜ(https://qiita.com/kazukichi/items/fa6433c3d0115c2b627b)## システムなんかで勝てるの?w
日本の投資家には批判的な意見もまだまだある(詐欺的なものも多いですから)みたいですが、エンジニアの皆さんなら分かるでしょう。出来る
ですよね。
そもそも、勝ってる投資家はいくつかの情報を判断して買いや売りのタイミングを測っていて、それは全て定量化した情報を元に判断してるわけですから。システムで勝てない!って言ってる人は結局その戦略が悪いだけでシステムが悪い分けじゃないわけです。
因みにITを駆使して、ブランド苺を生産している
**ミガキイチゴ**
というのがあるんですが、熟練職人の「感覚」で判断しているものを職人の視線を全てトラッキングして、
**どういう時に何処を見て判断しているのか**
を数値化して、成功しています。
要は、職人さんが言う「感覚でやってる」というのは実際感覚ではなく、言語化す
Apache+PHPサーバーのWebサイトをAWS Lambdaで動かす
別チームでホスティングしていたWebサイトがあったのですが、いろいろと都合がありWebサイトのソースとドメインだけをもらい、自分のとこのチームでホスティングする機会があり、「いまさらサーバーとか持ちたくない! サーバーレスでやりたい! それにIaCしたい!」と四苦八苦したメモです。
## 受領したソース
受領したWebサイトですが、販売終了したけれど残しておかないといけない商品サイトとかをイメージしていただけるといいかと思います。アクセス頻度・更新頻度ともに多くはありません。
ファイル種別としては、以下のようなものが含まれます。古き良きCGI的な感じの動的サイトです。
– HTMLファイル
– PHPファイル、incファイル
– アセットファイル
– jsファイル
– スタイルシート
– 画像
– etc…容量的には全体で400MBくらいですが、そのほとんどはアセットファイルで、HTML,PHPは数MBです。PHPはヘッダーフッターを共通化したり、ニュースやブログ記事のXMLをCMSサーバーから取得・整形したりする用途で使われています。C
新: Laravel SQLの実行クエリログを出力する
## 概要
今回アップデートしたLaravel [10.15.0](Laravelhttps://github.com/laravel/framework/releases/tag/v10.15.0) でSQL実行ログの出力処理が改善されました。
以前にも同様の記事を書いていましたが、こちらはこちらでしばらく使われるかなと思うので、古い記事は残しつづ新しく記事を書きました。
https://qiita.com/ucan-lab/items/753cb9d3e4ceeb245341
Laravelのアップデート内容についてはこちらに詳しく解説された記事がありますのでご紹介します。
https://qiita.com/fuwasegu/items/c6e668dae1546184ff15
## 環境
– PHP: 8.2.8
– Laravel: 10.15.0 以上
– MySQL: 8.0.32## SQL実行ログを出力する
### サービスプロバイダーの作成
“`shell-session
$ php artisan make:provider Databas
フットサルコート予約webアプリを真似して作ってみる
## 説明
PHP,Javascriptの復習のために何か作ろうと思ったのでやってみます。
phpはなんとなく覚えているんですが、JavaScriptは苦手意識があって何も覚えてないのでほぼ0からです。## 使用言語等
##### フロントエンド
・HTML, CSS, Javascript##### バックエンド
・phpのLaravelを使ってみる##### データベース
・MySQL## その他
やってるうちに必要だったり、面白そうだなって思ったらjavascriptのフレームワークを使ってみる。
Laravel で使いたい便利なパッケージ4選 (Pint, Larastan, Telescope, Insights)
# はじめに
**Laravel での開発効率・品質向上に繋がる便利なパッケージ**のまとめ記事です。| パッケージ名 | 用途 | 対応バージョン |
| —- | —- | —- |
| Laravel Pint | コード整形 | PHP 8.1 以上 |
| Larastan | 静的コード解析 | PHP 8.0 以上 かつ Laravel 9.x 以上 |
| Laravel Telescope | デバッグ | PHP 8.0 以上 かつ Laravel 8.37 以上|
| PHP Insights | コード品質分析 | PHP 7.4 以上 |# Laravel Pint
## 概要
PHP-CS-Fixer をベースとして作成された Laravel 用のコード整形ツールhttps://laravel.com/docs/10.x/pint
## 対応バージョン
PHP 8.1 以上## インストール手順
Laravel 9.x 以上のアプリケーションであれば基本的には不要です。
もしインストールされていなければ、以下のコマンドを実行
[Laravel 10.15] 生SQLを実行する必要がある方注目!toRawSql()でEloquentからバインド値が組み込まれたSQL文を出力できるようになった!
## はじめに
Laravelが提供しているEloquentというORMは非常に便利で、複雑なクエリも簡単に作成できます。便利なのですが、残念ながらEloquentが使えない場合もあります。
たとえば、クエリのコストや負荷を計測するための`explain`を実行したい場合です。
もう一つは、弊社では安全のために`本番のtinkerでコマンドを実行しないルール`があり、データ抽出の依頼があった場合にはDBのレプリカで生のSQLを実行することになっています。そのような場合、Eloquentから生のSQLに変換するために`dd()`や`toSql()`といった関数もありましたが、出力されるSQLにクエリパラメータがバインドされず、`?`というプレースホルダのままになってしまいました。そのため、手動でクエリパラメータをSQL文に置き換える必要がありました。
Laravel 10.15のリリースでは、`toRawSql()`関数が追加され、バインドされた値が含まれたSQL文を出力できるようになりました。
## toSql()・dd()・toRawSql()比較
### 今まであった
PHP/Laravelで使える!?OpenAI APIクライアント
## 背景
もう随分前から生成AI/LLM/ChatGPTあたりの話題が尽きない今日このごろ。
弊社運営のSaaSにもGPTが導入されたりして、結果、お問い合わせが増加していると聞いています。
先日、ふとLaravel Newsのブログ記事などを眺めて居たのですが、やはりというべきか、最近になってGPT関連の記事が複数掲載されていました。PHP/Laravel界隈も例に漏れず、という所のようです。
私も、今更ながらキャッチアップをばと、PHPerの端くれとして、
PHP/LaravelからOpenAI APIを利用する実装を試してみました。## 事前準備
* Laravel sailで開発環境を構築
* `curl -s “https://laravel.build/example-app” | bash`
* OpenAI APIを利用するため、OpenAIへのSignUpと、APIキーの払出
* https://openai.com/ にアクセスしてSign Up
* https://platform.openai.com/account/billin
4ステップでLaravelで作ったウェブサイトをさくらサーバーで公開する
## 前提条件
* /home/\/wwwディレクトリが公開ディレクトリとする
* つまり、https://\.sakura.ne.jp/を叩くと/home/\ /www以下にアクセスできる
* /home/\/\ にLaravelのプロジェクトディレクトリをおく
* https://\.sakura.ne.jp/\ /を叩くとプロジェクトのサイトにアクセスできるようにする ## 方法
* さくらサーバーにアクセスする
“`
$ ssh@ .sakura.ne.jp
“`* Composerをインストールする
“`
$ curl -sS https://getcomposer.org/installer | php
“`* Laravelのプロジェクトを立ち上げる
“`
php composer.phar create-project laravel/laravel
“`* Laravelのpublicディ
CSVファイルのMIMEタイプはPHPバージョンで変わるようだ
Webシステムでファイルアップロードをする前に
ファイルの種類をチェックする処理を実装しようとしました。備忘録として検証結果を投稿します。
※サーバ側の構築手順は省略しています# 検証環境
– サーバ
– Rocky Linux 8
– Apache 2.4.37
– クライアント
– Windows 10
– Google Chrome# 検証方法
– 検証用ソース(index.php)をサーバ側(/var/www/html/)に格納する
– PHPをインストールする
– クライアント側からhttp://[IPアドレス]/にアクセスする
– 検証したいファイルを選択し、「アップロード」ボタンをクリックする
– 画面に表示されるMIMEタイプを確認する![画面.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/432162/4eeaa694-2ba7-8a72-de2f-98bff58860a8.png)
# 検証用ソース
“`index.php
Laravel10で[Class “Database\Factories\UserFactory” not found]が起こってSeederが実行できない
既存のLaravel6のアプリをLaravel10にアップグレードした後、以下のコマンドを実行すると、
“`
php artisan db:seed
“`
[Class “Database\Factories\UserFactory” not found]というエラーを吐かれてしまった。ここからGoogle検索でさまざまな記事や以下のドキュメントを参考にしてなんとか頑張っていたが、長時間解決できず。(ModelにHasFactory追加したりとか。)
https://readouble.com/laravel/10.x/ja/seeding.html解決策としては、composer.jsonに以下の記述を追加すれば良いだけだった。
[変更前]
“`
“autoload”: {
“psr-4”: {
“App\\”: “app/”
},
…
“`
[変更後]
“`
“autoload”: {
“psr-4”: {
“App\\”: “app/”,
“D
【Laravel】リソースコントローラーについて
## はじめに
アプリケーションを作成していく中で必要な考え方として
CRUD「クラッド」という考え方があります。以下の頭文字を取ってCRUDと呼ばれています。
| C | create | 新規作成 |
| — | — | — |
| R | read | 表示 |
| U | update | 更新 |
| D | delete | 削除 |リソースコントローラーは、CRUDを細かく以下のように7つに分けてURIやルート名などを自動で生成してくれるという機能になります。
| 動詞 | URI | メソッド名 | ルート名 | 名称 |
| — | — | — | — | — |
| GET | /photos | index | photos.index | 一覧の表示 |
| GET | /photos/create | create | photos.create | 新規作成 |
| POST | /photos | store | photos.store | 保存 |
| GET | /photos/{photo} | show
【PHP8.3】Overrideが明示できるようになる
PHPドキュメントでよく使われる[phpDocumentor](https://docs.phpdoc.org/)、およびドキュメントの推奨フォーマットである[PSR-5](https://github.com/phpDocumentor/fig-standards/blob/master/proposed/phpdoc.md)・[PSR-19](https://github.com/php-fig/fig-standards/blob/master/proposed/phpdoc-tags.md)には、何れも何故か[`@Override`がありません](https://qiita.com/rana_kualu/items/8b2d9d42b81e9f6f0fd1)。
なんでや。ということでPHP本体にアトリビュート`#[\Override]`を追加するRFCが提案されました。
既に受理されており、PHP8.3から使えるようになります。以下は該当のRFC、[Marking overridden methods](https://wiki.php.net/rfc/marking_
PHPの基礎(仮)
# 実行環境
とりあえず最新のバージョンで始めました。
– MAMP 5.0.5
– PHP 8.0.1
– MySQL 5.7.24
– Google Chrome
# PHPの基本
### PHPのルール
PHPでは下のコードのように処理を囲みます。例では、「echo」を使用して、Hello Worldを出力しました。
~~~php:index.php
~~~
出力結果です。実際にはChromeに表示されています。
~~~:出力
Hello World
~~~
処理が1行の場合は、セミコロンを省略しても動作します。
~~~php:index.php
~~~
~~~:出力
Hello World
~~~
### 変数の定義方法
変数の名前の前に$をつけて定義します。型の指定は必要ないです。出力の際に「” “」は変数を展開しますが、「’ ‘」は文字列として出力します。brタグを使用して改行しています。
~~~php:index.php
ファサードとは
# Laravel Facade(ファサード)とは
## ファサード作成
### 1 ファサードに登録したい処理(クラス)を作成
ディレクトリーはどこに作成するといったルールもなく、特に指定なし。“`
【Laravel】サービスプロバイダとは、使い方や作成方法
プロバイダというのは提供者という意味です。
今回はサービスコンテナにサービスを登録する仕組みを紹介していきます。
※サービスコンテナについてわからない方は以下の記事も見ておくと理解力が深まると思います。https://qiita.com/div_tomo/items/644a483828fda3b4f434
### 参考記事「[readouble.com](http://readouble.com/)」
https://readouble.com/laravel/8.x/ja/providers.html
サービスプロバイダには大きく分けて2つ
`register()`と`boot()`というメソッドがあって
`register()`の中で`app()`サービスコンテナにサービスを登録して
`boot()`の方で全てのサービスを登録した後に実行したい処理を書くという流れになります。
# サービスプロバイダの使い方
## サービスプロバイダが記述されている場所
> config > app.php
>“`php
‘providers’ => [