【PHP】Laravel【フレームワーク】 Part.3
■ このスレッドは過去ログ倉庫に格納されています
テンプレ追加修正お願いします
Laravel
ウェブ職人のためのPHPフレームワーク
本家
https://laravel.com/
git
https://github.com/laravel
動画チュートリアル(英語)
https://laracasts.com/
日本語
http://laravel.jp/
書籍
Laravel リファレンス[Ver.5.1 LTS 対応] Web職人好みの新世代PHPフレームワーク
Laravelエキスパート養成読本[モダンな開発を実現するPHPフレームワーク!] (Software Design plus)
※前スレ
【PHP】Laravel【フレームワーク】
https://medaka.5ch.net/test/read.cgi/php/1503683914/
【PHP】Laravel【フレームワーク】 Part.2
https://medaka.5ch.net/test/read.cgi/php/1556417229/
amazonへのリンクが邪魔をしてスレッドを建てられなかったので外しました。 本当に妄想なのか?
みんなでものすごい議論しあってただろ
本当に妄想だったら誰も相手にしないはず マジレスするとLaravelのjson脆弱性はLaravel6の時の話であって
今は修正されている Laravel8のアップグレードガイド読めない君最近見ないね お前らってLaravel8のルーティングの書き方がわからなくてストレスたまっちゃって
それでこのスレを荒らしていたのか? ・初心者はlaravel 7で勉強しろ
・初心者は移行ガイドを嫁
どれが正解なの?どっちもデメリットが思いつくけど 初心者の定義がはっきりしてないのに正解なんて分かるわけない
プログラミングの初心者なのか?
phpの初心者(他言語経験有)なのか?
Laravelの初心者なのか?
MVCの初心者なのか?
で話だって全く変わるだろうよ >>780
どの場合でもlaravelの初心者なのは間違い無いので、いきなりlaravelのアップグレードガイド見ろって言うの無茶じゃね?
先週荒れてたのは、経験者がアップグレードガイドを理解できず、laravel8の変更なんて大したことないと豪語しちゃって周りから叩かれてたからなわけで。 アップグレードガイドを読みながらlaravel 7の本を進めるなんてできるかね?
初心者のうちにそんな効率の悪い子としてられるか アップグレードって言っても空っぽのプロジェクトだろ?例え初心者でも大変なのか?
既存プロジェクトでしかもテストも書いてないから大変だ!って言うなら分かるけど >>783
プロジェクトのアップデートの話でなく、知識のアップデートの話だよボケ >>783
まぁ、人によるとしか言えんな
同じ初心者でも 数ヶ月ぶりにlaravel触ると、分かんねえ。本読んでもわかんね。 >>783
まず本に書いてる通りにやっても動かない、というのが問題だわな。
んで、動かなかった時にアップグレードガイドをみて原因を特定できる初心者がどれほど居るのか?って話だと思うぞ。
まぁ実際8をインストールして何か作ってみたら分かるよ。7までの書き方だとcontrollerクラス見つからねーてエラーになるから。
ここで、8を勧めてない奴は俺がそうであるように8で実際作った経験がある奴で、8で良いじゃんて言ってるのはlaravel公式のドキュメントなんて普段読んだことがなく最新のアップグレードも試したことない奴だと思うわ。 実践開発という本やってるけどangularで詰まった
やっぱ古いからなのかな >>789
controller見つからないはあり得ないだろ
artisanのmake:controllerで作っていればちゃんと所定の場所に生成されるはず
それって手動でコントローラ作成してないか? >>791
まず8をインストールして、route/web.phpに7までと同じ書き方でエンドポイントにcontrollerを指定してそのurl呼び出してみたら分かるよ。 初めてLaravelをインストールしてみようと思うんですが
コンパイルはどうやって行うんですか? 度々すみません 公式サイトのドキュメントを見ると
laravelというコマンドでプロジェクトを生成するパターンと
composerというコマンドでプロジェクトを生成するパターンがあるようなんですが
これらの違いって何かあるんですか? 「お酒買ってるってことは夜勤帰りですか?」て聞かれて「あ、そうですよ」て返したら「お疲れさまです!明日も頑張ってくださいね」って言われた
半年間行ってて初めて話しかけられてめちゃくちゃ嬉しいぞ >>796
最終的には変わりないよ。 ただlaravel installerはパス通さないといけないので、初心者はcomposerで入れた方が良いと思う。 laravel公式のvagrant?を使う環境を用意してくれてますが
dockerはないのでしょうか? >>799
公式ではないけどいくつかあるよ。有名なのはlaradock。でもdocker使うのならオススメはvesselかな。 確かに今まで疑問に思ったことなかったけど
違いがないのでなんでlaravelというコマンド用意したんだろう >>792
コントローラー@関数名から
[コントローラー::class, 関数名]
にするだけじゃん
それ説明するだけの事をなんで勧めない理由にすんの? 学習するなら
require laravel/ui
php artisan ui vue --auth
php artisan migrate
とか
require laravel/jetstream
php artisan jetstream:install livewire
php artisan migrate
とかをやってある程度枠組みができた状態からやった方がいいだろ
routeファイルなんてゼロから書いても仕方ない >>802
初心者には8をお勧めできないことを証明してくれてありがとな。そのやり方だと動かない。
問題はルートサービスプロバイダ。namespaceプロパティにapp/Http/controllerを代入せずnullにしたこと。
だから、8ではcontrollerごとにuseするか、controller名をフルパスで指定するか、ルートサービスプロバイダ側の設定を7と同様にする必要がある。
んで、そういった設定の違いに気付いてlaravel初心者が自分で対応できるかは不定なので、参考書とバージョンを揃えるのが無難。 >>803
それただ単にユーザー認証のスカフォールドを実行してるだけじゃん。
しかも前者はbootstrap+vueだからまだ良いけど、後者はlivewireに加えてtailwindCSS+AlpineJSだから、参考書に全く載ってない技術スタックになってしまうぞ。
そしてtailwindCSSやlivewireは英語オンリーだし、AlpineJSは日本語あるもののドキュメント自体整備があまり進んでない代物だよ。こういうことはlaravel8で開発してみたら判るんはずだけどねぇ? >>804
?
802の言ってること正しいじゃん
::classって書いてある時点でnamespaceがフルで必要なのはlaravel以前に言語仕様じゃん >>806
それは好意的すぎる解釈だね。変更前と変更後のどちらもコントローラーとしか書いてないて時点で、俺は::classに変えておきながら、コントローラーはそのままなんかいて思ったけど? はやく8対応の本を出してください
急いでますから! へぇ、8からは::class
キーワードで指定できるようになったか
7まではコントローラー名を文が字列指定だったからIDEが認識しなくて地味に不便だったんだよな >>806
うん、まっとうなIDE使ってりゃ
「そんなクラス存在しないけど多分これだよね?useしとく?」
て聞いてくるよな >>810
まっとうなIDEねぇ?どんどん初心者にlaravel8を勧めないて話から逸れていってる気がするけど。
初心者でまっとうなIDE導入する人どれだけおるん?vscodeやatomスタートが殆どでは? >>811
vscodeでもuseに変更するか聞いてくるぞ
atomはしらん >>811
レスバはお前の負けだからおとなしく引き下がったほうがいいぞ というかそもそも
SampleController@関数名という描き方から
[SampleConroller::class, 関数名]という描き方になるだけで
なんで初心者にLaravel8を進めないという結論になるんだ?
初心者なんだからLaravelは[SampleConroller::class, 関数名]って書き方で
ルーティング設定するんだって思うだけで終了だろ
違い気にするのは過去のLaravelで製作してるやつらだけだろ >>814
まず>>789を読んでみたら判ると思うだが、初心者が既存のlaravelの参考書を使う場合、参考書のバージョンにするほうが良いのか、8にする方が良いのかという話なんだわ。 >>812
プラグインをちゃんとセットアップすればね?お前の想定している初心者像がもはやどんなものなのかすら分からんな。 Laravel初心者がuseをし忘れて(または知らなくて)解決できないってケースを否定まではしない
ただ、そもそも論になって申し訳ないが、それはLaravelとは関係なくてphpの言語仕様だから、そういうレベルだとそもそもphpの言語仕様から学ぶべきだと思う。 >>817
いや、そもそも>>802に気づくことができないだろって俺は思ってる。 話逸れるけど、名前空間の概念を知らないレベルだとアップグレード云々どころか本とバージョンが合ってても難しそうだな
名前空間なんてphp固有の概念ですらないし
つかこういう本の読者想定って最低限言語仕様を理解している前提じゃないのかな?
あんまそういう本買わないから分からないんだけど
発端となった人の参考書の想定読者層を知りたい >>819
俺はlaravel初心者の大半はPHP初心者でもあるって想定だね。そもそもPHPある程度できるやつは、laravelの参考書読むより、マニュアルとlaravel本体のコード読んで勝手におぼえるじゃんて思ってる。 >>805
既に動くルーティングがあるっていうのはめちゃめちゃ参考になるんだが >>821
初心者はPHPの書き方も知らないのにどうやって参考になるの? >>821
お前自身ユーザー認証スカフォールド使ったことある?実際それセットアップしてコードリーディングしてたら、そのコメントは絶対出てこないはずなんだが。 ああスマン、見直してみたらルート設定が書かれてるのは
vendor/laravel/jetstream/routesの中身だったのをrouteに書いてあるのと勘違いしてた >>816
それは昔のvscodeだろ今はvscode標準でphpの機能入ってるから
プラグイン無くてもuseにするか?とかは聞かれる 黙れ黙れ黙れ黙れ黙れ黙れ
お前らにプラグインいらなくてもいいって言われて発狂しそうだわ 今までとルートの書き方が違うから初心者に進めることができないってのが理解できない
初心者は今までの書き方との違いなんて気にしないだろ ここで聞かれてるんなら差分くらいはここで説明すれば済む話じゃね? やってみて分からんかったらまたここで聞けばいいだけだろ >>829
参考書と異なることが問題だって既に何度も説明してるのだが? すみません ドキュメントを見るとLravelのAPI回数規制で429を返すようですが、
回数パラメータを多くしても429が返ってくるのはなぜでしょうか?
artisan serveで起動していたのでartisan serveを再起動してみたり
キャッシュクリア実施してみましたが変化なしです。
マックス値を10回で設定しているのになぜか3回目から429になります 自分も教えてくださいLaravelでsqliteデータベースを使用してチュートリアルを
行っているのですがphp artisan tinkerコマンドでシェルに入ってモデル操作を行うと
DBからデータを取得したり書き込んだりできるのですが
php artisan serveでサーバを立ち上げて実際のコントローラ経由でモデル操作を行うと
sqliteにアクセスできないのですがどうすればいいでしょうか。
エラーを見るとapp直下のモデルが見つからないとかモデルの関数名間違い等のエラーではなく
そもそもsqliteのデータベースファイルが存在していないというエラーになってしまいます。 DBに接続できない件解決しました
Laravelはartisan serve経由だとMySQL、artisan tinker経由だとSQLiteにアクセスする仕様なんですね
この仕様知らなかったので焦ってしまいました
>>836
ありがとうございます。Laravelの仕様の問題だったようです > Laravelはartisan serve経由だとMySQL、artisan tinker経由だとSQLiteにアクセスする仕様なんですね
そんな仕様ないと思うけど 多分artisan serveとtinkerで実行したときとでモードが変わっている
productionとdevelopmentが切り替わったせいでDB接続先も変わったんだろう 7や8ぐらいで変わったとか言ってたら既存のライブラリなんかまったく使えないだろwww
ホントバカが多すぎて笑えるw >>843
いや、変わったとか大騒ぎしてんの一人二人くらいだろ 7→8に変えたけどroute書き換えるくらいでウチのフロントのReactくんは問題なく動いたよ そもそも話の発端は、本を頼りに勉強する初心者くんにlaravel8をやらせてよいか?だからな。業務で使ってるようなやつなら、別に自分で対処すれば済む話。そこを理解してないバカが約1名居るようだな。 make:authで認証自動生成してくれるけどメールアドレス前提で
コントローラや画面生成するのやめてほしい
make:auth実行したらどういうアカウントのModelにするか入力させる方式にしてほしい
イメージ的にはsymfonyでmake:entityしたときみたいな感じ Redisについて質問です。
Predisが将来削除されるということから、PECLでPhpRedisをインストールしました。
マニュアル(Laravel 6.x Redis)に以下記述があります。
-----
Redisファサードエイリアスに加えPhpRedis拡張を使用する予定であれば、
Redisクラスとの衝突を避けるために、
RedisManagerのような他の名前にリネームする必要があります
-----
マニュアルに記載の通りエイリアスから下記行を削除しました。
// 'Redis' => Illuminate\Support\Facades\Redis::class,
上記対応をした場合、以下の記述はPhpRedis拡張を利用しているのでしょうか?
-----
use Illuminate\Support\Facades\Redis::class;
Redis:set(key, value); >>849
Illuminate\Redis\RedisManager で定義されてる connector() でこう実装されてる
switch ($this->driver) {
case 'predis':
return new Connectors\PredisConnector;
case 'phpredis':
return new Connectors\PhpRedisConnector;
}
だから、ここにブレークポイント貼って確認すると良いと思う。
driver は config/database.php の redis.client で設定されてるから確認して。 >>849
そもそもの話だけど、predisは復活したから削除されなくなると思うで。 >>850
>>851
ご回答ありがとうございます。
↓に記載されていないメソッド(hMSetとか)も呼び出せるようになっていました。
https://laravel.com/api/6.x/Illuminate/Redis/Connections/PhpRedisConnection.html
ファザードをほとんど理解していないので>>850さんが言うように、
↓のクラスが何をしているのか調べてみます。
use Illuminate\Support\Facades\Redis::class;
ありがとうございました。 結局Modelsディレクトリ問題は何だったんだよ
初心者ながらにググって作り方調べて毎回作って設定とかに紐付けてたのに
8は普通にあるじゃねえか ModelとViewとControllerを配置するディレクトリ構成が他のMVCフレームワーク異なっててわかりにくい 色んなフレームワーク使ったけどLaravelがとうとう人類が手に入れた完成版て感じ、なんでもできる
5.8の時点でそう思う(数年前5.8で作ったシステムの使い回し案件をやりながら) laravelのインストールが終わりましたが結構大変ですね。。。 Composerがエラーを吐きまくる
Composer嫌い、動けば便利なんだろうけどさあ… >>858
Dockerなんですけどパーミッション関連が大変でした。。 JetstreamのオプションってConfigでオンオフできるけど、勝手に切り替えていいのかな
とりあえずチーム機能入れといて後で要らなくなったからオフするとか LaraveldeはCakePHPのようにコントローラーとアクションを作成したら自動でビューに紐付いたりはしないのでしょうか?
このように書いた場合はview('hello.world')を書かずとも、
http://localhost/hello/worldにアクセスしたら、
resources/hello/world.blade.phpを使うと思ってたら使われませんでした。
class HelloController extends Controller
{
public function world(){
return view('hello.world');
}
} 寧ろフロントはJSフレームワーク使うからPHPによるVIEWはノーセンキュー >>861
それLaravelじゃなくてDockerが苦労したってことね そうなんですね!
viewをしっかり設定するようにします!
ありがとうございます! eloquentとcollectionの親和性もっと高めてくれないかなあ。なんか惜しい。 ■ このスレッドは過去ログ倉庫に格納されています