20210724のPHPに関する記事は9件です。

phpのslimをdockerで動かしてcurlでファイルをアップロードしたメモ

概要 dockerを使ってPHP-Slimを動かしてみたメモ。 ついでに、starserverにftpでアップロードしたメモも残す。 なお、startserverの無料枠はhttps化できなかったので微妙だなぁと。 この時点のソース 環境 Windows10 Virtualbox 6.1.24 Vagrant 2.2.17 box - ubuntu/focal64 docker-compose 1.29.2 docker 19.03.13 git 2.32.0 環境構築 dockerの準備 laradockから必要そうなもののみ抽出して使用。 workspace php-fpm nginx mysql docker-in-docker docker/docker-compose.yml docker/.env composerでインストール docker-compose upでlaradockを立ち上げたのちに、 docker-compose exec workspace bashでworkspaceに入る。 あとは、その中でcomposer installコマンドを実行。 ファイルのアップロード curlコマンドでアップロードするshellを組んでいる。 /bin/ftp-upload_all.sh #!/bin/bash # このシェルスクリプトのディレクトリの絶対パスを取得。 bin_dir=$(cd $(dirname $0) && pwd) parent_dir=$(cd $bin_dir/.. && pwd) public_dir=$(cd $parent_dir/public && pwd) host=xxx.starfree.jp user=xxx.starfree.jp pass=xxxxx cd $public_dir curl --upload-file composer.phar --user $user:$pass ftp://$host/ curl --upload-file .htaccess --user $user:$pass ftp://$host/ curl --upload-file index.php --user $user:$pass ftp://$host/ find templates -type f -exec curl -u $user:$pass --ftp-create-dirs -T {} ftp://$host/{} \; find vendor -type f -exec curl -u $user:$pass --ftp-create-dirs -T {} ftp://$host/{} \; 参考
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

PHPの無料お試しサーバを探したらAzureAppServiceに行き着いたメモ

概要 PHPのslimフレームワークを少し試したいなと考えて無料サーバを探したけれど、 検索上位の環境はのきなみHTTPS化できなかった。 最終的にAzureにたどり着いたのでそこに至るメモ。 この時点のソース 対象読者 MySQL使わなくてもよい、PHPの勉強中の人。お金のない学生とか。 WordPressを無料で使いたい人は対象外。 調べたり勉強する手間より、有料プランにして無料SSL一発適用がコスパよいと思う。 今まで無料範囲で構築できたGCPも規約変更で月300円くらいかかるそうですし。 やりたいこと PHPの動作環境 HTTPSでのアクセス 最近はHTTPでは使えないjavascript apiもあったりするので。(例: clipboardの操作) 比較検討 無料PHPはWordPressをメインの対象にしているっぽい MySQLが入っているのはAMP(Apache,MySQL,PHP)環境が一時期流行ってたからかと xfreeはphp用とwordpress用でスペックに差があった。もうwordpressしか力を入れていないのかもしれない。 △ ... xreaは1年間は.shopドメインでhttps可能 1年後は.shopドメインが有料になるため、完全無料とは言えない サービス 容量 PHP MySQL HTTPS netowl 2000M 7.4 5.7 × xfree - PHP 1000M 7.1 5.0 × xfree- WordPress 2000M 7.4 5.7 × xrea 2000M 8.0 5.7 △ AppService 1000M 7.4 - 〇 Azure APP ServiceでSlimを動かしてみたメモ 以下のドキュメントに従って構築した。 Azure App Service に PHP Web アプリを作成する Azure App Service 向けの PHP アプリを構成する 前提条件 Azureの無料アカウントを取得していること。 azure-cliがインストールされていること 割と頻繁に更新されるので、chocolateyでのインストールがおススメ gitが使えること ログインしておくこと az login デプロイユーザの構成 gitでデプロイするためのユーザを作成する。 az webapp deployment user set --user-name hogeDeployUser --password fugapasssword Resouce Groupの作成 AppServicePlan,AppSeriveをまとめるためのコンテナを作成。 az group create --name freeHogeGroup --location "Japan East" App Service Planの作成 アプリケーションの動作環境を作成 az appservice plan create --name freeHogeAppServicePlan --resource-group freeHogeGroup --sku FREE App Serviceの作成 アプリケーションを作成 az webapp create --resource-group freeHogeGroup --plan freeHogeAppServicePlan --name freeHogeAppService --runtime "PHP|7.4" --deployment-local-git 実行すると、以下のようにgitのパスが表示されるので控えておく。 Local git is configured with url of 'https://hogeDeployUser@freeHogeAppService.scm.azurewebsites.net/freeHogeAppService.git' gitからAzureへのpush ファイルの準備 Azure App Service 向けの PHP アプリを構成するを参考にgitに必要なファイルをコミットしておく。 リポジトリサンプル .htaccessの設定で、publicフォルダをwwwルートにしている slim,twigのインストール(composerに書かれたライブラリはgit push するとサーバ側で自動的にインストールされる) リモートリポジトリの登録 デプロイ用のgitリポジトリを登録する。 git remote add azure https://hogeDeployUser@freeHogeAppService.scm.azurewebsites.net/freeHogeAppService.git デプロイ 初回はパスワードを求められる git push azure 確認 作成されたAPPServiceをみると、デプロイ先のURLを確認できる。 デプロイされたHPの確認 デプロイ先のフォルダ確認 以下のコマンドを入れると、ブラウザが立ち上がり、 デプロイ先のAppServiceのコンソールにアクセスできる。 /home/site/wwwroot/ディレクトリにgitでpushした中身が入っている。 vendorディレクトリがあるので、きちんとcomposerが動作していることが分かる。 az webapp ssh -n freeHogeAppService -g freeHogeGroup なお、gitのコミットで消したファイルも、デプロイ先では残っていたりするので時々様子見したほうがいいかも。 余談 netowlの無料プランの管理画面の入り口って初見殺しじゃないですかね 参考 無料レンタルサーバーXFREEで無料SSL化は可能か?【WordPress・ブログ作成初心者】② Azure App Service に PHP Web アプリを作成する Azure App Service 向けの PHP アプリを構成する az webapp sshService slim
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

初心者がPHPのオブジェクト指向の使い方について考えてみた

まえがき はじめまして。 PHPを使った開発を行う上でなかなかイメージが掴みづらい「オブジェクト指向」という概念ですが、 実際どのようにコーディングして、どのようなシチュエーションで利用すると便利なのか、検証して理解した事をまとめてみようと思います。 注意事項 PHPバージョン:8.0.1 ソース まずはソースから記載するのですが、処理の動きとしては、 継承先となるextendClass.phpから、継承元のclass.phpを呼び出す extendClass.php上でclass.php上で設計された機能(メソッド)を使う というようなイメージとなります。 class.php <?php // オブジェクト指向の簡単なデモ class Car { private $maker; //メーカー private $name; //車名 private $model; //型式 private $displacement; //排気量 private $fuelEconomy; //燃費 private $fuelCapacity; //燃料容量 private $price; //価格 function __construct($maker, $name, $model, $displacement, $fuelEconomy, $fuelCapacity, $price) { // メンバ変数を初期化 $this->maker = $maker; $this->name = $name; $this->model = $model; $this->displacement = $displacement; $this->fuelEconomy = $fuelEconomy; $this->fuelCapacity = $fuelCapacity; $this->price = $price; } // 小さい単位のデータ取得、処理 ------------------------------------------------------ // ゲッター(メーカー) public function getMaker(){ return $this->maker; } // ゲッター(型式) public function getModel(){ return $this->model; } // メンバ関数(メソッド) public function getLogicalMileage() { // 論理走行距離(燃費 * 燃料容量) return $this->fuelEconomy * $this->fuelCapacity; } public function getLMOfPrice() { // 1万円あたりの走行距離(小数点第二で切り上げ) return round($this->getLogicalMileage() / $this->price, 2); } // クラス内で生成したデータを成形するメソッド ----------------------------------------- /** * ゲッター、メンバ関数を用いて * 説明文の生成するメソッド */ public function getDescription() { $text = ""; $text = $this->getMaker(). "の". $this->getModel(). "は、"; $text .= "論理走行距離が". $this->getLogicalMileage(). "km"; $text .= "であり、"; $text .= "車両価格対走行距離が1万円あたり". $this->getLMOfPrice(). "km"; $text .= "です。"; return $text; } } extendClass.php <?php echo phpinfo(); // クラスファイル読み込み require 'class.php'; // 引数は可変値、設計書は使いまわすイメージ $car1 = new Car("トヨタ", "ランドクルーザー", "4.6GX", 4608, 93, 6.9, 437.8); $car2 = new Car("ホンダ", "ヴェゼル", "1.5 G Honda SENSING", 1496, 40, 21.2, 192.1); $car3 = new Car("三菱", "アウトランダー", "20M", 1998, 63, 16.0, 247.8); // 各オブジェクトから生成された説明文を出力 echo "<pre>"; var_dump($car1->getDescription()); var_dump($car2->getDescription()); var_dump($car3->getDescription()); // string(124) "トヨタの4.6GXは、論理走行距離が641.7kmであり、車両価格対走行距離が1万円あたり1.47kmです。" // string(136) "ホンダの1.5 G Honda SENSINGは、論理走行距離が848kmであり、車両価格対走行距離が1万円あたり4.41kmです。" // string(118) "三菱の20Mは、論理走行距離が1008kmであり、車両価格対走行距離が1万円あたり4.07kmです。" あとがき オブジェクト思考を利用した開発を行う事で、 具体的な動きと入力される情報の置き場所を分けてコーディングする事ができ、 棲み分けを行う事ができるのは非常に良いなと感じました。 ただし、上記のような考え方を落とし込みながらシステムの要件定義や設計を行う必要があり、 そのためには時間が必要となりそう & 慣れが必要となんだろうなと思いました。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

初心者がオブジェクト指向について考えてみた

まえがき はじめまして。 PHPを使った開発を行う上でなかなかイメージが掴みづらい「オブジェクト指向」という概念ですが、 実際どのようにコーディングして、どのようなシチュエーションで利用すると便利なのか、検証して理解した事をまとめてみようと思います。 注意事項 PHPバージョン:8.0.1 ソース まずはソースから記載するのですが、処理の動きとしては、 継承先となるextendClass.phpから、継承元のclass.phpを呼び出す extendClass.php上でclass.php上で設計された機能(メソッド)を使う というようなイメージとなります。 class.php <?php // オブジェクト指向の簡単なデモ class Car { private $maker; //メーカー private $name; //車名 private $model; //型式 private $displacement; //排気量 private $fuelEconomy; //燃費 private $fuelCapacity; //燃料容量 private $price; //価格 function __construct($maker, $name, $model, $displacement, $fuelEconomy, $fuelCapacity, $price) { // メンバ変数を初期化 $this->maker = $maker; $this->name = $name; $this->model = $model; $this->displacement = $displacement; $this->fuelEconomy = $fuelEconomy; $this->fuelCapacity = $fuelCapacity; $this->price = $price; } // 小さい単位のデータ取得、処理 ------------------------------------------------------ // ゲッター(メーカー) public function getMaker(){ return $this->maker; } // ゲッター(型式) public function getModel(){ return $this->model; } // メンバ関数(メソッド) public function getLogicalMileage() { // 論理走行距離(燃費 * 燃料容量) return $this->fuelEconomy * $this->fuelCapacity; } public function getLMOfPrice() { // 1万円あたりの走行距離(小数点第二で切り上げ) return round($this->getLogicalMileage() / $this->price, 2); } // クラス内で生成したデータを成形するメソッド ----------------------------------------- /** * ゲッター、メンバ関数を用いて * 説明文の生成するメソッド */ public function getDescription() { $text = ""; $text = $this->getMaker(). "の". $this->getModel(). "は、"; $text .= "論理走行距離が". $this->getLogicalMileage(). "km"; $text .= "であり、"; $text .= "車両価格対走行距離が1万円あたり". $this->getLMOfPrice(). "km"; $text .= "です。"; return $text; } } extendClass.php <?php echo phpinfo(); // クラスファイル読み込み require 'class.php'; // 引数は可変値、設計書は使いまわすイメージ $car1 = new Car("トヨタ", "ランドクルーザー", "4.6GX", 4608, 93, 6.9, 437.8); $car2 = new Car("ホンダ", "ヴェゼル", "1.5 G Honda SENSING", 1496, 40, 21.2, 192.1); $car3 = new Car("三菱", "アウトランダー", "20M", 1998, 63, 16.0, 247.8); // 各オブジェクトから生成された説明文を出力 echo "<pre>"; var_dump($car1->getDescription()); var_dump($car2->getDescription()); var_dump($car3->getDescription()); // string(124) "トヨタの4.6GXは、論理走行距離が641.7kmであり、車両価格対走行距離が1万円あたり1.47kmです。" // string(136) "ホンダの1.5 G Honda SENSINGは、論理走行距離が848kmであり、車両価格対走行距離が1万円あたり4.41kmです。" // string(118) "三菱の20Mは、論理走行距離が1008kmであり、車両価格対走行距離が1万円あたり4.07kmです。" あとがき オブジェクト思考を利用した開発を行う事で、 具体的な動きと入力される情報の置き場所を分けてコーディングする事ができ、 棲み分けを行う事ができるのは非常に良いなと感じました。 ただし、上記のような考え方を落とし込みながらシステムの要件定義や設計を行う必要があり、 そのためには時間が必要となりそう & 慣れが必要となんだろうなと思いました。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

個人開発で会計ソフトを開発しました

各種リンク front-end https://github.com/nobu0605/accounting-application back-end https://github.com/nobu0605/accounting-application-api application https://accounting-application-front.herokuapp.com 背景 自分はエンジニアにキャリアチェンジする前に、経理などのバックオフィスの仕事を3年半ほどしていました。経理の仕事には今も興味があるので、今回個人で会計ソフトを開発してみました。 機能(一部) ・言語切り替え 日本語と英語を選ぶ事ができます。 日本語 英語 ・振替伝票 仕訳を入力する事ができます。 ・財務レポート ・仕訳一覧 使用した技術 ・フロント React version 17.0.1 Typescript version 4.0.5 ・バックエンド Laravel Framework 6.20.4 PHP 7.3.24 MySQL 5.7 ・CI/CD GitHub Actions ・サーバー Heroku ・ER図 https://drive.google.com/file/d/14r1bxllKWg7Ih6xf9yeYxHyRrDL5FkrU/view?usp=sharing
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

PHPで生年月日のフォームを自作関数にしてLaravelのbladeで使ってみた

はじめに Laravelのbladeで、フォームに生年月日入力欄を作ろうとし、「生年月日 select コピペ」で調べてコピペした際、長すぎーと思ったので、 PHPで書き直してから、Laravelのbladeで表示させるところまでやってみました。 index.blade.php //~略 <option value="">-</option> <option value="1900">1900</option> <option value="1901">1901</option> <option value="1902">1902</option> <option value="1903">1903</option> <option value="1904">1904</option> <option value="1905">1905</option> <option value="1906">1906</option> <option value="1907">1907</option> <option value="1908">1908</option> <option value="1909">1909</option> <option value="1910">1910</option> <option value="1911">1911</option> <option value="1912">1912</option> //略)2021まで続く... //...長い。 まずは生PHPでテスト 後ほど、自作関数としてbladeに表示させるつもりだったので、function内に処理を書いて、呼び出すようにしました。 postで受け取った後に年と月と日を連結してdate型にしたかったので、月と日はvalue値をstr_pad()で0埋めにしました。 →★コメントより、sprintfの方がより楽という意見をいただきましたので、変更しました。よりスマートになりました。有難うございます。 test.php <?php //年 function yearSelect(){ $n = date("Y"); //現在の年 $y = $n - 125; //125年前からスタート for($y; $y<$n; $y++){ echo '<option value="'.$y.'">'.$y.'</option>'; } } //月 function monthSelect(){ for($m=1; $m<=12; $m++){ $pad = sprintf('%02d', $m) //1~9までは前を0埋め,str_pad($m, 2 ,0, STR_PAD_LEFT)から変更 echo '<option value="'.$pad.'">'.$m.'</option>'; } } //日 function daySelect(){ for($d=1; $d<=31; $d++){ $pad = sprintf('%02d', $d); //1~9までは前を0埋め,str_pad($d, 2 ,0, STR_PAD_LEFT)から変更 echo '<option value="'.$pad.'">'.$d.'</option>'; } } ?> <!--略--> <div> <select name="birthday_year"> <option value="">-</option> <?php yearSelect(); ?> </select> 年 <select name="birthday_month"> <option value="">-</option> <?php monthSelect(); ?> </select> 月 <select name="birthday_day"> <option value="">-</option> <?php daySelect(); ?> </select> 日 </div> <!--略--> できたので、Laravelでやってみます。 【Laravel】自作関数用のクラスを作成 appディレクトリに、Lib(任意名)ディレクトリを作成し、MyFunction.php(任意名)を作成 MyFunctionクラスの中にstaticメソッドを作成していきます。(先程のをstaticにしてぶち込んだだけです。) staticの解説としては以下が分かりやすかったです。有難うございます。 https://fresh-engineer.hatenablog.com/entry/2018/08/23/031829 app>MyFunction.php <?php namespace App\Lib; class MyFunction { public static function yearSelect(){ $n = date("Y"); //現在の年 $y = $n - 125; //125年前からスタート for($y; $y<$n; $y++){ echo '<option value="'.$y.'">'.$y.'</option>'; } } public static function monthSelect(){ for($m=1; $m<=12; $m++){ $pad = sprintf('%02d', $m) //1~9までは前を0埋め,str_pad($m, 2 ,0, STR_PAD_LEFT)から変更 echo '<option value="'.$pad.'">'.$m.'</option>'; } } public static function daySelect(){ for($d=1; $d<=31; $d++){ $pad = sprintf('%02d', $d); //1~9までは前を0埋め,str_pad($d, 2 ,0, STR_PAD_LEFT)から変更 echo '<option value="'.$pad.'">'.$d.'</option>'; } } } 【Laravel】エイリアスに登録 configディレクトリのapp.php内にあるエイリアス(aliases)の中に 'クラス名' => App\Lib\ファイル名::class,を追加します config>app.php 'aliases' => [ //~略 'MyFunction' => App\Lib\MyFunction::class, ], 【Laravel】bladeで使用する {{ MyFunction::関数(メソッド)名 }} index.blade.php <!--略--> <li class="form-item"> <p class="form-item-title">生年月日</p> <select name="birthday_year"> <option value="">-</option> {{ MyFunction::yearSelect() }} </select> 年 <select name="birthday_year"> <option value="">-</option> {{ MyFunction::monthSelect() }} </select> 月 <select name="birthday_year"> <option value="">-</option> {{ MyFunction::daySelect() }} </select> 日 </li> <!--略--> 無事表示されました。おしまい。 おわりに 初めてのQlita投稿でした。 いつもお世話になっているので、自分もと思い投稿してみましたが、Qlitaの質を下げてしまうのは一番避けたいところですので、もし他に良い方法や間違っている点等あれば教えて頂ければ幸いです。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

PHPで生年月日のフォームを作りLaravelのbladeで使ってみた

はじめに Laravelのbladeで、フォームに生年月日入力欄を作ろうとし、「生年月日 select コピペ」で調べてコピペした際、長すぎーと思ったので、 PHPで書き直してから、Laravelのbladeで表示させるところまでやってみました。 index.blade.php //~略 <option value="">-</option> <option value="1900">1900</option> <option value="1901">1901</option> <option value="1902">1902</option> <option value="1903">1903</option> <option value="1904">1904</option> <option value="1905">1905</option> <option value="1906">1906</option> <option value="1907">1907</option> <option value="1908">1908</option> <option value="1909">1909</option> <option value="1910">1910</option> <option value="1911">1911</option> <option value="1912">1912</option> //略)2021まで続く... //...長い。 まずは生PHPでテスト 後ほど、自作関数としてbladeに表示させるつもりだったので、function内に処理を書いて、呼び出すようにしました。 postで受け取った後に年と月と日を連結してdate型にしたかったので、月と日はvalue値をstr_padで0埋めにしました。 test.php <?php //年 function yearSelect(){ $n = date("Y"); //現在の年 $y = $n - 125; //125年前からスタート for($y; $y<$n; $y++){ echo '<option value="'.$y.'">'.$y.'</option>'; } } //月 function monthSelect(){ for($i=1; $i<=12; $i++){ $pad = str_pad($i, 2 ,0, STR_PAD_LEFT); //1~9までは前を0埋め echo '<option value="'.$pad.'">'.$i.'</option>'; } } //日 function daySelect(){ for($i=1; $i<=31; $i++){ $pad = str_pad($i, 2 ,0, STR_PAD_LEFT); //1~9までは前を0埋め echo '<option value="'.$pad.'">'.$i.'</option>'; } } ?> <!--略--> <div> <select name="birthday_year"> <option value="">-</option> <?php yearSelect(); ?> </select> 年 <select name="birthday_month"> <option value="">-</option> <?php monthSelect(); ?> </select> 月 <select name="birthday_day"> <option value="">-</option> <?php daySelect(); ?> </select> 日 </div> <!--略--> できたので、Laravelでやってみます。 【Laravel】自作関数用のクラスを作成 appディレクトリに、Lib(任意名)ディレクトリを作成し、MyFunction.php(任意名)を作成 MyFunctionクラスの中にstaticメソッドを作成していきます。(先程のをstaticにしてぶち込んだだけです。) staticの解説としては以下が分かりやすかったです。有難うございます。 https://fresh-engineer.hatenablog.com/entry/2018/08/23/031829 app>MyFunction.php <?php namespace App\Lib; class MyFunction { public static function yearSelect(){ $n = date("Y"); //現在の年 $y = $n - 125; //125年前からスタート for($y; $y<$n; $y++){ echo '<option value="'.$y.'">'.$y.'</option>'; } } public static function monthSelect(){ for($m=1; $m<=12; $m++){ $pad = str_pad($m, 2 ,0, STR_PAD_LEFT); //1~9までは前を0埋め echo '<option value="'.$pad.'">'.$m.'</option>'; } } public static function daySelect(){ for($d=1; $d<=31; $d++){ $pad = str_pad($d, 2 ,0, STR_PAD_LEFT); //1~9までは前を0埋め echo '<option value="'.$pad.'">'.$d.'</option>'; } } } 【Laravel】エイリアスに登録 configディレクトリのapp.php内にあるエイリアス(aliases)の中に 'クラス名' => App\Lib\ファイル名::class,を追加します config>app.php 'aliases' => [ //~略 'MyFunction' => App\Lib\MyFunction::class, ], 【Laravel】bladeで使用する {{ MyFunction::関数(メソッド)名 }} index.blade.php <!--略--> <li class="form-item"> <p class="form-item-title">生年月日</p> <select name="birthday_year"> <option value="">-</option> {{ MyFunction::yearSelect() }} </select> 年 <select name="birthday_year"> <option value="">-</option> {{ MyFunction::monthSelect() }} </select> 月 <select name="birthday_year"> <option value="">-</option> {{ MyFunction::daySelect() }} </select> 日 </li> <!--略--> 無事表示されました。おしまい。 おわりに 初めてのQlita投稿でした。 いつもお世話になっているので、自分もと思い投稿してみましたが、Qlitaの質を下げてしまうのは一番避けたいところですので、もし他に良い方法や間違っている点等あれば教えて頂ければ幸いです。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

正規表現

はじめに 正規表現とは「いくつかの文字列を一つの形式で表現するための表現方法」 難しい... この正規表現を使いこなすことができればたくさんの文章から特定の文字列を検索することが容易となるため習得したい。 正規表現とは 例えば電話番号 0120-828-828(やずや)を口頭で表現するには 「はじめに数字が4桁あって、ハイフンがあって、数字が3桁あって、またハイフンがあって、数字が3桁ある感じ」 となる これを1つの形式で表現すると '/\d{4}-\d{3}-\d{3}/' となる。 短くなり便利そうだが、なんせ分かり辛い メタ文字 正規表現で使用する文字の中で特に注意すべきものが「メタ文字」である index.html . ^ $ [ ] * + ? | ( ) メタ文字は aやb、1や2といった一般的な文字と違い、文字以上に特別な意味を含んだ文字である メタ文字の前にバックスラッシュ()を入れることによって一般的な文字列として表現できる index.html \. \^ \$ \[ \] \* \+ \? \| \( \) 電話番号の例 数字4桁を \d{4} と表現したが、これはメタ文字の一種であるエスケープシーケンスである 詳しくは メタ文字(特殊文字)の一覧 ...前方一致や繰り返し等、その他正規表現も追記予定
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

laravel新規プロジェクト環境設定+認証機能

Laravel新規プロジェクト作成(laravel7) まずは、ターミナルで以下のコマンドを打ってプロジェクトを作成していく。 $ composer create-project "laravel/laravel=7.*" <プロジェクト名> 次はpostgresでDBを作成(postgresインストール済みとする) //ログイン psql -d postgres //DB一覧 \l //DB作成 # create database DB名; //CREATE DATABASE と表示されたらOK 次に.envファイルの編集 DB_CONNECTION=pgsql DB_HOST=127.0.0.1 DB_PORT=5432 DB_DATABASE=先ほどpostgresで作成したDB名 DB_USERNAME=postgres DB_PASSWORD= php artisan migrate を実行 $ php artisan migrate postgresにusersテーブルが作られているか確認。 *Laravelをインストールした時に最初からあるはずのcreate_users_table.phpとcreate_password_resets_table.phpを元にテーブルが作られる。 //DB接続 myproject-# \c データベース名 テーブル一覧 myproject-# \d  List of relations Schema | Name | Type | Owner --------+--------------------+----------+---------- public | failed_jobs | table | postgres public | failed_jobs_id_seq | sequence | postgres public | migrations | table | postgres public | migrations_id_seq | sequence | postgres public | password_resets | table | postgres public | users | table | postgres public | users_id_seq | sequence | postgres 確認できればOK!! 認証機能 次はusersテーブルにちゃんとデータが入るか確認する。 Laravel6.0以降からmake:authコマンドが使用できなくなり、laravel/uiをインストールする必要があるため下記のコマンドを打つ $ composer require laravel/ui:^2.4 $ php artisan ui vue --auth これで画面右上に認証機能が追加された。 しかし認証画面へ遷移するとスタイルが崩れてしまっている。 原因はsass/app.scssが反映されてない(コンパイル)ので下記のコマンドを打つ $ npm install $ npm run dev これでスタイルが修正された。 ちゃんとDBに接続されているか実際に呼び出してみる viewsファイルに新しくindex.blade.phpを作成 <div> <h1>{{$users->name}}</h1> </div> 次にControllerの作成 $ php artisan make:controller HelloController HelloController.phpに下記を追記 <?php namespace App\Http\Controllers; use Illuminate\Http\Request; // Userの情報をとってくるため追記 use App\User; use Auth; class HelloController extends Controller { public function index(){ // 認証済みのユーザーのデータを$usersに格納 $users = Auth::user(); return view('index',compact('users')); } } web.phpにroteを追加 <?php use Illuminate\Support\Facades\Route; Route::get('/', function () { return view('welcome'); }); Auth::routes(); Route::get('/home', 'HomeController@index')->name('home'); //追記 Route::get('/index', 'HelloController@index')->name('index'); これで下記のURLにアクセスして登録したuser名が表示されていれば多分OK!! http://127.0.0.1:8000/index
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む