探検


【PHP】Laravel【フレームワーク】 Part.12

■ このスレッドは過去ログ倉庫に格納されています
2022/08/31(水) 18:53:51.77ID:???
Laravel
ウェブ職人のためのPHPフレームワーク

本家
https://laravel.com/

git
https://github.com/laravel

動画チュートリアル(英語)
https://laracasts.com/

※前スレ
【PHP】Laravel【フレームワーク】 Part.9
https://medaka.5ch.net/test/read.cgi/php/1636499781/
【PHP】Laravel【フレームワーク】 Part.10
https://medaka.5ch.net/test/read.cgi/php/1647325775/
【PHP】Laravel【フレームワーク】 Part.11
https://medaka.5ch.net/test/read.cgi/php/1658553311/
446nobodyさん
垢版 |
2023/04/08(土) 17:46:58.76ID:???
>>445
CounterCacheがどんな機能なのかわからないけどオブザーバー使って実現できるんじゃないかな
447nobodyさん
垢版 |
2023/04/09(日) 12:06:15.20ID:???
>>446
オブザーバーで、save/update後に登録数をcountするようにします。
単純な方法ですが、既存のCounterCacheも同じような仕組みなので
このやり方がベターなんだと思います。
448nobodyさん
垢版 |
2023/04/10(月) 12:32:43.55ID:???
phpstormって何でlaravelのサポート削除したの?
449nobodyさん
垢版 |
2023/04/10(月) 17:09:26.30ID:???
マイグレーションのintegerにZEROFILLを指定したい場合、どう書けばいいのでしょうか?
450nobodyさん
垢版 |
2023/04/10(月) 19:58:37.10ID:???
>>449
無理やりやればできるけど基本的にはやらない方がいい
理由はMySQLの機能なのでDBをpostgressとか他のストレージエンジンに変更した場合
マイグレーションでエラーになるかその機能が付与されない
実現する場合はモデルでその機能を実装する
451nobodyさん
垢版 |
2023/04/11(火) 09:13:08.76ID:???
>>450
そうですか。それならstringとかcharにして文字列として扱います。
452nobodyさん
垢版 |
2023/04/11(火) 12:12:43.05ID:???
zerofillでググったらmysql8.0からintのzerofillが非推奨になってるみたいだね
453nobodyさん
垢版 |
2023/04/11(火) 12:33:45.57ID:???
大体はアプリでやる方がキレイだしね
454nobodyさん
垢版 |
2023/04/11(火) 17:41:19.56ID:???
例えば外部APIやローカルファイルがデータソースだった場合で、Modelの機能だけを使いたい場合ってどうしてます?
使いたいのはキャスタ、アクセサ、ミューテタ、状態管理辺りの機能
良い方法が無くて自作したんだけどベストプラクティスがあればそっちに変えたいんです
455nobodyさん
垢版 |
2023/04/11(火) 18:25:48.79ID:???
それはLaravelのいうところのModelにはならん気がするけど、それをどこに置くかってこと?
456nobodyさん
垢版 |
2023/04/11(火) 18:38:57.42ID:???
機能としてはDTOが一番近しいんだけど
Modelと同じ使用感でattributes、fillable、hiddenとか設定できたり
既に資産として存在するカスタムキャスタを使ったりしたい
457nobodyさん
垢版 |
2023/04/14(金) 01:35:30.50ID:O955HWXC
社内データを元に原価予測等の傾向分析を含むWEBサイトを開発するとしたら
データ分析部分はPythonでやらせるとして、
WEBはPHPかLaravelで分析ロジックはexe化したpythonプログラムをPHPのexec関数なんかで呼び出すか、
またはWEBをDjangoで分析ロジックも含めてコーディングするか、
あたりの2案その他を考えていますがどっちが良いか悩みます
開発やメンテ容易性、レスポンスなんかで考えるとどれになるのかなと
AI分析を絡めたWEBサイトの案件は多くなりそうですし、フリーのフレームワークで安価に構築したい要求もありますしね
458nobodyさん
垢版 |
2023/04/14(金) 01:38:40.97ID:???
ちんちん!シユシュッシュッ!
459nobodyさん
垢版 |
2023/04/14(金) 07:48:46.99ID:???
データ分析時間がどのくらいか知らないけど、時間かかるようならバッチ処理したデータ分析結果をWEBで見るやり方かなあ
460nobodyさん
垢版 |
2023/04/14(金) 08:48:59.56ID:???
フォームを検索するときに、コントローラで

$post = Post::query();
if ($request->query('name')) {
$post->where('name', $request->query('name'));
}
$result = $post->get();

みたいな書き方をしているのですが、
フォームの項目が増えるほどIFも増えて冗長化します。
良いライブラリとかコンポーザのパッケージはないでしょうか?
461nobodyさん
垢版 |
2023/04/14(金) 12:57:11.00ID:???
>>460
一番雑で簡単な返答はFormRequestでバリデーション入れて
Post::query()->where($request->validated())->get()
なんだけどこれは実践だとクソの役にも立たないのでやっちゃダメ
自分の実装を簡単に書くと例えば下記の方法

ModelにScope作る
public function scopeSearch(Builder $builder,array $params ):Builder
{
$builder = $this->scopeSearchName($builder,data_get($params,'name'));
return $builder ;
}

public function scopeSearchName(Builder $builder, $name ):Builder
{
if( blank($name) ) {
return $builder ;
}
return $builder->where('name',$name ) ;
}

コントローラーで呼び出す
Post::search($request->validated())->get()

個別に使うなら
Post::searchName($request->query('name'))->get()
462nobodyさん
垢版 |
2023/04/14(金) 13:38:42.25ID:???
>>461
モデルごとにこれを書くなら、IFで書く場合と大差ないことないですか?

あと、$request->validated()ってバリデーション通すのはなぜですか?
検索でバリデーションをすると、requiredでひっかかりそうですが
463nobodyさん
垢版 |
2023/04/14(金) 14:51:00.39ID:???
>>462
> モデルごとにこれを書くなら、IFで書く場合と大差ないことないですか?
「IFで書く場合」ではなく「コントローラーに書く場合」として回答すると
大差ないか?という事であればベストプラクティスとバッドプラクティスの差がある
コントローラは単一の責任だけを持たないといけないのでモデルの検索ロジックがコントローラーに書かれていることがおかしい

以下ChatGPTの回答

検索ロジックをコントローラに書いてしまうと、コントローラが複雑になり、保守性が低下する可能性があります。
以下に詳しく説明します。

1. コードの可読性が低下する
コントローラに検索ロジックを含めると、コントローラの役割が複雑になり、コントローラのメソッドが大きくなり、可読性が低下する可能性があります。
コントローラの役割が明確でなくなるため、コントローラの修正や保守が困難になる可能性があります。

2. テストが困難になる
コントローラに検索ロジックを含めると、コントローラのテストが困難になる可能性があります。
コントローラに含まれる検索ロジックは、外部の依存関係を持つ可能性があり、依存関係をモック化する必要があるため、テストコードが複雑になる可能性があります。

3. 再利用性が低下する
コントローラに検索ロジックを含めると、再利用性が低下する可能性があります。
コントローラは、Webアプリケーションの特定の機能を担当するために設計されており、その機能に特化した責任を持つように設計されるべきです。
検索ロジックがコントローラに含まれると、コントローラが特定の機能に依存してしまうため、他の機能で再利用することが困難になる可能性があります。

以上の理由から、検索ロジックをコントローラに含めず、別の場所に分離することをお勧めします。
例えば、リポジトリパターンを使用して、データベースからデータを検索する責任を持つクラスを作成し、コントローラからはそのクラスを呼び出すようにすることができます。
これにより、コントローラは単一の責任を持ち、コードの保守性が向上し、テストの容易性や再利用性が高まります。
464nobodyさん
垢版 |
2023/04/14(金) 15:04:32.87ID:???
>>462
続き
> あと、$request->validated()ってバリデーション通すのはなぜですか?
入力値の操作ができるので入力値に関する責任をコントローラーから切り離せる
https://readouble.com/laravel/9.x/ja/validation.html#preparing-input-for-validation
要するに検索項目に入れたくないパラメータやら値を省くことができる

> 検索でバリデーションをすると、requiredでひっかかりそうですが
nullableを使えばよい
465nobodyさん
垢版 |
2023/04/14(金) 15:15:47.82ID:???
>>462
一応ChatGPTの回答

検索リクエストの値をバリデーションする理由は、以下のようなものがあります。

1. 検索クエリの安全性を確保するため
検索クエリに含まれる値が適切にバリデーションされていない場合、悪意のあるユーザーによってSQLインジェクション攻撃などのセキュリティ上の問題が引き起こされる可能性があります。
バリデーションを行うことで、入力された値が予想されるフォーマットに一致しているかどうかを確認することができ、攻撃を防ぐことができます。

2. 検索結果の品質を向上するため
検索クエリに含まれる値が適切にバリデーションされていない場合、意図しない検索結果が表示される可能性があります。
たとえば、数字のみを入力することが想定されているフィールドに文字列が入力された場合、検索結果に誤りが生じる可能性があります。
バリデーションを行うことで、検索クエリが適切に構成されているかどうかを確認することができ、正確な検索結果を得ることができます。

3. UXを向上するため
検索リクエストのバリデーションにより、ユーザーが誤ったクエリを送信してしまった場合にエラーメッセージを表示し、適切な入力を促すことができます。
これにより、ユーザーのUXが向上し、検索エラーを減らすことができます。

以上のような理由から、検索リクエストの値をバリデーションすることが重要となります。
466460
垢版 |
2023/04/14(金) 16:32:57.48ID:???
確かにコントローラに検索ロジックを書くと複雑になりますね。
管理画面用のコントローラと公開画面用のコントローラで
似たようなソースを書いてるので余計に無駄です。

検索バリデーションについては思うところもありますが、
とりあえずベストプラティクスに近づけたいので
出来る範囲で対応したいと思います。
467460
垢版 |
2023/04/14(金) 17:27:24.43ID:???
すみません、スコープ作った場合でも、

public function scopeSearchName($query, $name){
 if ($name !== null) {
  return $query->where('name', $name);
 }
}

みたいにIFで判定するのは仕方ないんですかね?

また、検索項目が複数ある場合、

User::searhName($request->query('name'))->searhType($request->query('type'))->searhBirth($request->query('birth'))

みたいにどんどん長くなるのも仕方ないんですかね?
468nobodyさん
垢版 |
2023/04/14(金) 17:53:45.98ID:???
>>467
> IFで判定するのは仕方ないんですかね?
これって値が空の場合検索条件追加しないでクエリビルダを戻すって事やってるから
値の有無関係なく検索する必要があるなら(nullを検索したい場合には)条件分岐しなくとも良い
というより何をどう検索したいかによってScope内の処理は変わるから何とも言えない

> 検索項目が複数ある場合
> どんどん長くなるのも仕方ないんですかね?
コントローラー内からシンプルに呼び出せる様にscopeSearchを書いたつもりなんだけど

public function scopeSearch(Builder $builder,array $params ):Builder
{
$builder = $this->scopeSearchName($builder,data_get($params,'name'));
$builder = $this->scopeSearchType($builder,data_get($params,'type'));
$builder = $this->scopeSearchBirth($builder,data_get($params,'birth'));
return $builder ;
}
469460
垢版 |
2023/04/14(金) 17:58:44.88ID:???
とりあえずスコープの勉強が足りないことはわかりました
色々と試行錯誤してやってみます。ありがとうございました
470nobodyさん
垢版 |
2023/04/16(日) 02:39:49.01ID:???
クエリビルダでwhen()があるので
if()で条件判定して追加するよりはスマートな気がする
データが入ってないと検索条件が増えないようなものには俺の場合はwhen()で対処している
良くある検索条件が複数あって未入力はパスのようなやつね
471460
垢版 |
2023/04/16(日) 09:50:36.55ID:???
>>470
どういう書き方になるのでしょうか?
>>468の書き方を採用しているのですが、

if (data_get($params,'name') !== null) {
$builder = $this->scopeSearchName($builder,data_get($params,'name'));
}

な感じでIF入れてます。IF入れないと$paramsに存在しない場合エラーになるので。
472nobodyさん
垢版 |
2023/04/21(金) 18:06:14.14ID:eZ0hTZy/
APIサーバーとしてLaravelを使用してるけど、Laravel Sanctum良いね
認証処理が一瞬で構築できる
473nobodyさん
垢版 |
2023/04/23(日) 18:55:40.49ID:???
オブジェクトのことよくわかってなかったんだが、

$user = User::find(1);
$old_user = $user;
$user->update($request->all());

ってすると、$old_userの中身が更新済みの値に変わるんだな。
474nobodyさん
垢版 |
2023/04/23(日) 22:30:11.53ID:???
>>473
clone を使わないとダメあるよ
475nobodyさん
垢版 |
2023/04/23(日) 22:59:19.23ID:CuNCCdp5
ミュータブル、イミュータブルという言葉で調べてみると良いかも
476nobodyさん
垢版 |
2023/04/23(日) 23:14:34.79ID:???
>>474
$user = User::find(1);
$old_user = clone $user;

こうするのね。勉強になった
477nobodyさん
垢版 |
2023/04/24(月) 02:02:01.12ID:???
というかオブジェクトだからとかあまり関係ない気はするけど、大丈夫ならいっか
478nobodyさん
垢版 |
2023/04/26(水) 07:28:13.95ID:???
変数の命名規則ってどうしてる?
キャメルケースにしろという説明もあれば
スネークケースの方がいいというのもあるけど。
自分はメソッドと区別するためにスネークケースにしてる
479nobodyさん
垢版 |
2023/04/26(水) 08:44:49.28ID:???
>>478
> キャメルケースにしろという説明
これってどこにある?見たことない
480nobodyさん
垢版 |
2023/04/26(水) 10:40:10.16ID:???
>>479
「laravel ベストプラクティス」でググった一番上のページに書かれてますよ
481nobodyさん
垢版 |
2023/04/26(水) 10:58:43.96ID:???
>>478
その説明だとPSRに従った上で変数はキャメルケースを推奨してるからキャメルケースでいいんじゃないかな
自分としてはメソッド名、クラス名と同じ方がキャメルケースのがやりやすいかな
482nobodyさん
垢版 |
2023/04/26(水) 11:06:07.79ID:???
>>481
公式もキャメルケースなんですよね。
ビューでforeachするときに

@foreach ($userProfiles as $profile)
$profile->name
@endforeach

みたいに書くのはどうかと思った(テーブル名はuer_profles、モデルはUserProfileなのに)
のですが、PSRや公式に従うならキャメルケースの方が良いですかね
483nobodyさん
垢版 |
2023/04/26(水) 11:13:39.59ID:???
あと、テーブルのカラムはfirst_nameみたいにスネークケースにするのに、
変数はキャメルケースだから、findの値を比較するときに
($firstName === $user->first_name)
となるので、おかしくないか?とも思いました。
484nobodyさん
垢版 |
2023/04/26(水) 14:17:15.08ID:O+wKXsaI
>>482
特にそれで違和感ないけどね
485nobodyさん
垢版 |
2023/04/26(水) 14:28:06.87ID:???
カラム名ってわかるからまあいいかな、って感じ
逆に他に変えるとその方が色々おかしくなりそう
486nobodyさん
垢版 |
2023/04/26(水) 21:33:35.41ID:???
$user = User::with(['posts'])->first();
$user_id = $user->id;

ってコントローラーでしたら駄目なんですか?
vscodeさんがUndefined propertyってエラー出してくるんですが
487nobodyさん
垢版 |
2023/04/26(水) 21:53:09.30ID:???
>>486

> vscodeさんがUndefined propertyってエラー出してくるんですが
おそらくエラーじゃなくて警告だと思うけど
Userモデルにプロパティが設定されてないって言ってる
出ない様にするにはPHPDocの書式で必要なプロパティを書いてあげればいいはず
例えばこんな感じ
/**
* Class User
*
* @property int|null id
*
* @package App\Models
*/
class User extends Model
488nobodyさん
垢版 |
2023/04/26(水) 22:01:28.39ID:???
>>486
それからこの書き方だと
usersテーブルにレコードが無い場合エラーになるでしょ
489nobodyさん
垢版 |
2023/04/26(水) 22:29:32.19ID:???
>>487-488
レコードの有り無しはともかくとして、
リレーションのwithをつけるかつけないかで警告が出ます
UserモデルもPostモデルも存在するのに
他にも記述は合ってる(値は取得できる)のに警告が出るし、
vscodeさんって結構厳しいんですね
490nobodyさん
垢版 |
2023/04/26(水) 22:58:30.62ID:???
>>489
vscodeが厳しいんじゃなくてあなたが緩いのでは無いかと
もっと型と変数の状態を意識するとよいと思うよ
> 他にも記述は合ってる(値は取得できる)のに警告が出るし、
値は取得できる「可能性がある」なので警告がでるんです
100%値が取得可能な状態であれば警告は出ないはず
これは値チェックとか例外処理で回避できる
491nobodyさん
垢版 |
2023/04/27(木) 11:40:47.66ID:???
>>490
phpstormだと100%値取得可能ならでないけどvscodeだと100%値が取得可能な状態であっても警告でるよ。
492nobodyさん
垢版 |
2023/04/27(木) 13:52:43.21ID:???
>>491
すまんvscode使って無いから知らなかった
ちなみにどんな警告がでるの?
493nobodyさん
垢版 |
2023/04/27(木) 15:34:18.89ID:???
それよりも一つだけなのにwith()に配列で渡すところが気持ちが悪いw
494nobodyさん
垢版 |
2023/04/28(金) 07:53:02.35ID:???
>>492
使ったこと無いのに他人に指摘してたのかよ・・・
495nobodyさん
垢版 |
2023/04/29(土) 20:14:23.37ID:???
JavaScriptでタイマー処理をしています。
指定した秒数(ここでは10秒)経過したらタイマーを停止する様にしていますが
タイマーが止まりません。助けてください、、、

$(document).ready(function(){
$("#id_div_test").click(function () {
setInterval(TestFunction , 1000);
});
});

var i_current_second = -1;
function TestFunction()
{
i_current_second++;
if( i_current_second == 10)
{
clearInterval(TestFunction);
}
}
496nobodyさん
垢版 |
2023/04/29(土) 20:22:13.26ID:???
>>495
intervalじゃなくtimeout使ったら?
正直よっぽど一秒間隔が重要じゃない限りは柔軟に停止できるtimeout使う方がいい
497nobodyさん
垢版 |
2023/04/29(土) 20:45:25.76ID:???
>>496
調べてみます。
498nobodyさん
垢版 |
2023/04/29(土) 21:22:06.46ID:???
そもそもの話上記の場合だと
var id = setInterval…
clearInterval(id)
ってやらんと止まらんけど
基本setIntervelでやらんといけないケースって殆どないと思う
499nobodyさん
垢版 |
2023/04/29(土) 22:01:35.72ID:???
>>498
ありがとうございます。
そういう書き方をするのですね。ネットで調べたブログに↑の用なコードがかかれていました。
500nobodyさん
垢版 |
2023/04/30(日) 00:03:05.99ID:???
>>498
出来ました!
ありがとうございます!
501nobodyさん
垢版 |
2023/04/30(日) 12:00:25.29ID:???
便乗質問ですが、Ajaxの処理するときって
バックエンドは普通にコントローラーに書いてもいいですか?
それとも専用のファイルに書くのでしょうか?

たとえば、タイマーで指定時間になる毎にDBからデータを取得して
結果をビューに表示するような処理です。
502nobodyさん
垢版 |
2023/04/30(日) 12:25:15.80ID:gJ/V2xTa
好きにすれば良いと思うが、
普通はそのすべての処理をコントローラーには書かないと思う
https://qiita.com/kouki_o9/items/5b6d957c78583232fb09
503nobodyさん
垢版 |
2023/04/30(日) 17:04:22.03ID:???
同じページのajax(API)なら同じコントローラに書いた方が分かりやすいだろうね
ルートはwebページの方はroutes/web.phpにAPIはroutes/api.phpに分けて書く事はあるかな
(ただしapiの方に書くとdomain/api/指定ルートになる)
まぁ、この辺は個人なら好きにやればいいし
プロジェクトならルールに従うしかないかと
504nobodyさん
垢版 |
2023/04/30(日) 17:38:15.02ID:???
「好きにすればいい」はその通りなんだけど、統一はしたいよね
AのコントローラではRequestクラスを作り、
Bのコントローラでは作らないという設計はどうなのかと思うし
505nobodyさん
垢版 |
2023/04/30(日) 23:01:42.99ID:???
FormRequestってblade使っているときは良く使ってたけど最近全く使ってないな
やる事はあんまり変わらないけど、バリデーションはLaravelのやり方でするのだがそれらは自前で呼ぶ感じかな
レスポンスは仕様が決まっているのでそれに合わせてエラー時の処理を行う感じが多い
Vueとか使ってたら99%はAPIのリクエストだからHTTPのformの処理とは違うしなぁ
506nobodyさん
垢版 |
2023/04/30(日) 23:33:54.16ID:???
phpのテンプレートエンジンのなかでもbladeはダントツで使いやすいよね
507nobodyさん
垢版 |
2023/05/01(月) 01:19:29.13ID:???
vueでもFormRequest使ってるわ
508nobodyさん
垢版 |
2023/05/01(月) 08:08:21.84ID:???
>>505
Vue使う場合って、素のHTMLに書いてバックエンドだけLaravelって使い方?
でも、それだと共通箇所(ヘッダーフッターなど)は重複するよね
509nobodyさん
垢版 |
2023/05/01(月) 13:26:00.42ID:???
FW使うより自前でゴリゴリ書いた方が開発効率が凄くいい。
510nobodyさん
垢版 |
2023/05/01(月) 14:12:27.82ID:???
車輪の再発明ですか
511nobodyさん
垢版 |
2023/05/02(火) 12:51:23.84ID:???
欠番おじさんに朗報 次期バージョンに欠番の再利用機能が入る模様
512nobodyさん
垢版 |
2023/05/02(火) 13:32:22.99ID:???
どういう機能?
513nobodyさん
垢版 |
2023/05/02(火) 14:44:38.54ID:???
欠番って使うデータベースの仕様次第なんじゃないの?
514nobodyさん
垢版 |
2023/05/02(火) 21:53:42.02ID:???
そんなバグの温床になりそうな機能実装されても常時OFFだろうけどね
515nobodyさん
垢版 |
2023/05/03(水) 10:18:16.40ID:???
FWなんて使わない方が生産性・保守性が高い。
516nobodyさん
垢版 |
2023/05/03(水) 10:21:44.12ID:???
Laravelで何作った良いかわからなくなってきた
AIに何が需要あるか聞いても明確に答えてくれない
517nobodyさん
垢版 |
2023/05/03(水) 15:11:14.06ID:???
>>516
SPAのバックエンジン
518nobodyさん
垢版 |
2023/05/03(水) 15:14:42.60ID:???
会員管理系のシステムを工数かけずに作るのには向いてるかなぁ
抽象化がかなり進んでるから、似たようなシステムを量産するときにも重宝する
519nobodyさん
垢版 |
2023/05/04(木) 09:03:31.30ID:???
会員システムなんて他にたくさんあるんだからわざわざ作る意味がない
520nobodyさん
垢版 |
2023/05/04(木) 09:52:22.62ID:???
>>518
言うてもBreezeとかパッケージ使うだろ?
あれ使うと似たような仕様になるから
結局、1から作ることが多いんだよなぁ
521nobodyさん
垢版 |
2023/05/04(木) 10:35:14.78ID:???
Laravelが会員管理システムに向いてないって思ってるやつがいるって知ってビビってる
522nobodyさん
垢版 |
2023/05/04(木) 14:07:08.61ID:???
日本語がわからん奴が勝手にビビってるだけ
523nobodyさん
垢版 |
2023/05/04(木) 14:31:51.51ID:???
Laravelはログイン画面とかTailwindが標準だけどあれ使いづらいよな
クラス地獄になって大変
524nobodyさん
垢版 |
2023/05/05(金) 22:31:41.72ID:???
>>523
あれは正気の沙汰じゃないわ
なんで採用されてるかわからん
525nobodyさん
垢版 |
2023/05/06(土) 11:15:46.61ID:???
そもそも Cake使えよ。なんでこんなマイナーなフレームワーク使うの?

というか昔もっとマイナーな kohana とかいうFWを使ってるクソプロジェクトがあった
526nobodyさん
垢版 |
2023/05/06(土) 11:31:57.01ID:???
>>525
元々Laravel使ってたのから案件でCake入ったけどCakeFW設計悪すぎテンプレートエンジンとかゴミじゃん
527nobodyさん
垢版 |
2023/05/06(土) 17:11:20.29ID:???
本当に有能だったら Laravelのシェアがもっと広がってるdろ
528nobodyさん
垢版 |
2023/05/06(土) 17:40:56.38ID:???
>>525
CodeIgniterちゃんの悪口はやめて!
529nobodyさん
垢版 |
2023/05/06(土) 18:15:59.68ID:???
てか2023版のPHPフレームワークランキングみたらどこも1位Laravelになってんじゃん
530nobodyさん
垢版 |
2023/05/06(土) 18:23:39.06ID:???
ちなGoogle Trend
https://i.imgur.com/yMIFaXJ.png
531nobodyさん
垢版 |
2023/05/06(土) 18:25:27.44ID:???
PHP自体が下火だからな。
PHPユーザー分母が減って、laravelユーザー変わらずで、相対的にシェアが上がって見えてるだけな気が。
532nobodyさん
垢版 |
2023/05/06(土) 18:30:02.82ID:???
>>531
案件数ベースで言ったら全然下火じゃないけどな
533nobodyさん
垢版 |
2023/05/06(土) 19:51:45.62ID:q5EMM9V/
少なくとも今からCakeはないわなw
534nobodyさん
垢版 |
2023/05/06(土) 20:05:11.36ID:???
CAKEが一番
535nobodyさん
垢版 |
2023/05/06(土) 23:56:27.89ID:???
>>531
下火というか定着したんだと思う。Web系なら大半はPHPで済むし
もっとパフォーマンス求めるならRubyになるんだろうけど
そこまで必要なのは大手サイトぐらいだからな
536nobodyさん
垢版 |
2023/05/07(日) 00:17:00.54ID:???
パフォーマンスの話するならGoとかJavaじゃない?
537nobodyさん
垢版 |
2023/05/07(日) 01:01:33.93ID:deCy6qSu
Go一択でしょ
538nobodyさん
垢版 |
2023/05/07(日) 07:37:00.11ID:???
GoってLaravelみたいなフレームワークある?
539nobodyさん
垢版 |
2023/05/07(日) 07:46:31.37ID:???
ruby男君がきているようだな
540nobodyさん
垢版 |
2023/05/07(日) 10:45:57.32ID:???
GoってWebで使うんだ。全然知らなんだ
541nobodyさん
垢版 |
2023/05/07(日) 11:01:28.57ID:???
マイクロサービスでよく聞く感じだねぇ
モノリシックなLaravelとは対局にある感じ
542nobodyさん
垢版 |
2023/05/07(日) 11:46:01.58ID:???
2年くらい前から結構Webで需要上がってるって聞いたなGo
543nobodyさん
垢版 |
2023/05/07(日) 12:14:32.36ID:???
興味はあるけど今更他の言語は学びたくない
544nobodyさん
垢版 |
2023/05/07(日) 13:13:24.89ID:???
Goって俗にいうレンタルサーバーでも動くの?
それともAWSとかコンテナ型のサーバじゃないと無理?
545nobodyさん
垢版 |
2023/05/07(日) 13:28:13.32ID:???
LaravelやっててVPSでもなくレンタルサーバーなんて使ってんの?
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況