「Controlladoresデルガドス、モデルスデルガロス」、ララエルManteniblesのmodelos.

13782 ワード

アウルナVezは、escuchadoラFraseを持ちます「モデルスデルガロス、ControlLords Gordos」?
HablandoエヌNuna Arquitectura Modelo、Vista、ControlLor(MVC)、La Frase SE Refiere A una filosofは、Cuyo Obtivtivo ES代表者Resisabilidad Los Controlladores e Intentar dejar Los Modelos Con la Menor Candidadデl ' Neas Posiblesです.
A ' s a a a a iega fila of a , Tambi - en - Sexo su Contraparte : "Modelos Gordos , ControlLord delgados "que como Imaginar And s s , se Refiere a la Replosof Mr . A a Reporar市長Carga a a Land Modelos e Intentar dejar Los Controlladores Conn la menor de a de de c c ' digo
エスタは、ltima haシド・アダタータpm mのlulplesフレームワーク大衆、ya que la市長は、デellos cuentan con un orm(オブジェクト関係マッピング)que permite爆発物デmanera muy pr cc la baseデdatosです.エストプロモデエステのフレームワーク、Cuyo Orm es NunaデLas Caracterは、sticas mのs fuerte、es laravel.
グラシアはララヴィルのステラ、エヌロスモデルオルスソレモスのマタラタ・タラ・デ・ラ・ベース、デラレリウス、コロッケ・アクセシアズ、モジュラー、イヴェント、コレクシオン、アルセシスなど.Teniendo al最終的な花弁y .
エル・オベシティ・ラ・ラヴァエル・エス・プレモティメント・クス・ポコ・マンテンブルズ、シングルメント・ス・ブラインドン・ラ・ハーラミエンタ・パラVolverlo My Pr . CticoAdiは、esのdonde comienza nuestra労働como desarrolladoresデソフトウェアal ejercer las mejores pr . cticas para no llegar a ese punto .
Primero que Nada , Debemos entender que "modelo "no sin es ' n nimo de "l "gica de negocio<研究ノート>オランジュ・デ・ドミノの抽象概念に関する一考察エンターデールesto es重要なパラポンダーcomenzarは、委任応答不定詞を不定期にします.
ラテンアメリカのマンテナー・モテノスにおける「観念」の意味とその問題点

Descripadoは、UquileBuilder Personalizadoを問い合わせます.
<研究ノート>クレア・フラグメントスの問合せについての一考察

  • クレールウナクラシクスIlluminate\Database\Eloquent\Builder エヌdは、nde vivirをとります.
        namespace App\QueryBuilders;
    
        use Illuminate\Database\Eloquent\Builder;
    
        class UserQueryBuilder extends Builder
        {
            public function whereActive(): self
            {
                return $this->where('status', User::ACTIVE_STATUS)
            }
        }
    

  • Nuestro Modelo que Utilice elにおけるインディアナBuilder クレアacacamosデcrear.
        namespace App\Models;
    
        use  App\QueryBuilders\UserQueryBuilder;
    
        class User extends Model
        {
            public function newEloquentBuilder($builder): UserQueryBuilder
            {
                return new UserQueryBuilder($query);
            }
        }
    
  • デesta Manera、ララヴァルsabrは、que debe利用量nuestroビルダーpersonalizados yポッドキャストhacer usoデl l Cuando海必需品、Ejplo:
    User::whereActive()->get();
    

    コレクシヨンコレクションコレクション.
    <研究報告> P/O Filtrar Datos , Laravel - Nos Provie la Facilidad de Collicions Personalizadas , Nuevamente en Passos :

  • クレールウナクラシクスIlluminate\Database\Eloquent\Collection エヌエルque colocaremos todas las funcionas a la colecci .
        namespace App\Collections;
    
        use Illuminate\Database\Eloquent\Collection;
    
        class UserCollection extends Collection
        {
            public function active(): self
            {
                return $this->filter(fn (User $user) => $user->email_verified_at !== null);
            }
        }
    

  • クレールの『アカラモス・デ・クレバー』における「契約」の意味
        namespace App\Models;
    
        use  App\Collections\UserCollection;
    
        class User extends Model
        {
            public function newCollection(array $models): UserCollection
            {
                return new UserCollection($models);
            }
        }
    
  • Nuevamente , Al Hacer Les , Shao Podremos Hacer USO de Nuna Mayer M ' s Flida y sin Cargar demasiado nuestros modelosEjemplo:
    User::all()->active();
    

    デイランドlが、GICAデEventosです
    オーガ・デ・ラ・メカニシュモスM . A . A . A . A . A . A . A . A .porのデフォルトは、Los modelos de laravelの息子の容量は、Emertir Eventos Geneen Ricos en Diversas Acciones、como al ser creados、modificos o disidadosの容量です.Nosotros podemos tomar ventaja de estos para mantener nuthems procesos islados
    ラマル・マン・デ・ログラロ『トラ四重奏』
  • クレアウンEvento que funcionarは、como dto、規則的なトランスポータ・エヌel modelo afectadoです.
  •        namespace App\Events;
    
           use App\Models\User;
    
           class UserSavingEvent
           {
               public User $user;
    
               public function __construct(User $user)
               {
                   $this->user = $user;
               }
           }
    
  • クレール国連の購読者Dicho Evento、Nは、tese que la definicisubscribe :
  •        namespace App\Subscribers;
    
           use App\Events\UserSavingEvent;
           use App\Services\NotifyUserCreation;
           use Illuminate\Events\Dispatcher;
    
           class UserSubscriber
           {
               private NotifyUserCreation $notifyUserCreation;
    
               public function __construct(NotifyUserCreation $notifyUserCreation)
               {
                   $this->notifyUserCreation = $notifyUserCreation;
               }
    
               public function saving(UserSavingEvent $event): void
               {
                   ($this->notifyUserCreation)($event->user);
               }
    
               public function subscribe(Dispatcher $dispatcher): void
               {
                   $dispatcher->listen(
                       InvoiceSavingEvent::class,
                       self::class . '@saving'
                   );
               }
           }
    
  • AhoraデメモスRegistrarアルススクリプタdentroデニュエストロEventServiceProvider
  •        use App\Subscribers\UserSubscriber;
    
           class EventServiceProvider extends ServiceProvider
           {
               protected $subscribe = [
                   UserSubscriber::class,
               ];
           }
    
  • Nuestro Modelo、en la propiedadの内装$dispatchesEvents アクエリアス・ユートク
  •        use App\Events\UserSavingEvent;
    
           class Invoice extends Model
           {
               protected $dispatchesEvents = [
                   'saving' => UserSavingEvent::class,
               ];
           }
    
    エステSoluciは、n papace unpocoラルガ、罪禁輸区、es muyエスカレート、SIエヌalgは、n menmoto seは、タルタルo Agregar Funcionalidad、ニュエストラモデルスエヌVA ver .アデウムは、セカンダリのトダAquella L Goesエヌ購読者分離物、Haciendoピエゾm s s s s que y manteniblesとして.

    結論
    Aunque Realmenteは、ParezcaデGrand Inmpacto、コメンツァAロスModelosの委任Reresponsabilidadesが、Nicas Nos VAを歌います.Y - Si seguimosは、カプセルの中でL .を得ます.
    エヌエストポストHablamosデLaravelエヌ特定、罪禁輸区、EsOyカシSeguroデqueロスフレームワークエヌ一般的なTiendenは、Bindar Caracter Eyes Sticasパラシュートで降下する人que desdesrollemosソフトウェアtoda Velocidad、罪禁輸区、es必需品デテンエルノスPensar Si Vale La Pena犠牲者Picididad Por calidadです.
    CIE ESTA EPA - PRによるCatie Esas Mereras de Optimizar Ten Modelos y si Vienes de un Lenguaje o Framework diferente , Comp - rn - rtenos de qu ' manera solucionar estos問題
    ハスタラ広報.