Laravel: Repository Pattern in practice

แชร์
ฝัง
  • เผยแพร่เมื่อ 9 ก.พ. 2025

ความคิดเห็น • 26

  • @amitdev1485
    @amitdev1485 หลายเดือนก่อน

    nice one to structure our code..hope for such more

  • @harshadevapriyankarabandar5456
    @harshadevapriyankarabandar5456 6 หลายเดือนก่อน +2

    I think controller and service layer is enough for most of the laravel applications. Hence we are re creating all the method in the repository which is already available in the laravel eloquent model, it seems like a repetitive work without any additional benefit.
    We can just keep our controller clean and pass the business login to service class , then resolve the function my accessing database via eloquent models and then return the result to controller.
    in that way we can use the laravel already build eloquent powers easily and quickly.

  • @verard0
    @verard0 ปีที่แล้ว +1

    really nice video! you covered a lot of info! congrats for your work!

  • @Muhammed-nani964
    @Muhammed-nani964 ปีที่แล้ว +5

    I think service (action) + DTO is better you may want to create a video on it

  • @robloxmusicvideo1
    @robloxmusicvideo1 11 หลายเดือนก่อน +4

    Please people, do not use a repository pattern in Laravel. Laravel has a beautiful active record solution and a repository pattern would only make sense when you would actually want to swap your database implementation, from let's say Mysql to Mongo for example. Do not use 'patterns' for the sake of using them. .

    • @hydrokat143
      @hydrokat143 9 หลายเดือนก่อน

      eloquent can switch over databases with some config changes in the database config and/or eloquent model.
      question is… is switching from sql to nosql or vv a thing?

  • @NurullahDemirel-n2e
    @NurullahDemirel-n2e ปีที่แล้ว

    Hello we made injection on BaseRepository for Model but ı did same things laravel give an error like " Target [Illuminate\Database\Eloquent\Model] is not instantiable while building [App\Http\Controllers\BlogController, App\Repositories\BlogRepository]" when ı make like " $this->app->bind(BlogRepositoryInterface::class,BlogRepository::class);" in AppServiceProvider for solition ı changed this as "
    $this->app->bind(BlogRepositoryInterface::class,function (){
    return new BlogRepository(new Blog());
    });" is there any solution ? Thank you for feeds from now ...

  • @parumhr1268
    @parumhr1268 ปีที่แล้ว +1

    what are the advantages to implementing the BlogRepositoryInterface as to just injecting the BlogRepository directly in the constructor??

    • @saaslaravel
      @saaslaravel  ปีที่แล้ว +1

      You have the freedom to change the implementation of the repository i.e you can change persistence layer or move it to a 3rd party without changing how it interacts with the rest of the application

  • @mohammadjavadrajabloo2711
    @mohammadjavadrajabloo2711 8 หลายเดือนก่อน

    Good Video!

  • @rahmaabdelaziz4095
    @rahmaabdelaziz4095 ปีที่แล้ว +1

    great work

  • @GergelyCsermely
    @GergelyCsermely ปีที่แล้ว

    Hi!
    I would suggest to use Route::resource

    • @saaslaravel
      @saaslaravel  ปีที่แล้ว +1

      Never. I hate those! They decrease visibility for me

  • @ДмитрийБ-ш8р
    @ДмитрийБ-ш8р ปีที่แล้ว

    Its better to use BlogPost::query()->toBase()->first() instead of BlogPost::first()->toArray(), because in second scenario, laravel convert array from DB to Eloquent, and convert eloquent to array. In first scenario you get raw data without converting

  • @alexz75515
    @alexz75515 ปีที่แล้ว +4

    Because this line is very long you can tell that this is an enterprise application... 😆

  • @denisadilev6410
    @denisadilev6410 2 หลายเดือนก่อน

    answer for this:
    Illuminate\Contracts\Container\BindingResolutionException
    Target [Illuminate\Database\Eloquent\Model] is not instantiable while building [App\Http\Controllers\BlogPostController, 00000000000000560000000000000000, App\Repositories\Repositories\BlogPostRepository]. ??

  • @himasami2200
    @himasami2200 ปีที่แล้ว

    can u please give me a source code of this video to study?

    • @saaslaravel
      @saaslaravel  ปีที่แล้ว +1

      I don't have source code for it unfortunately. Will be doing that for any videos going forward 😄

  • @topvova
    @topvova ปีที่แล้ว +2

    Why add an extra layer to Eloquent with interfaces and DTOs?
    This approach only clutters the code and reduces its maintainability.

    • @saaslaravel
      @saaslaravel  ปีที่แล้ว +3

      I never use it personally but some of the reasons include decoupling the entity model from the database or organisation and reuse of more complex queries

    • @impulserr
      @impulserr ปีที่แล้ว +2

      You can mock it easier for tests and it is cleaner imo. I like repositories for readonly eloquent/queries and services on top of that only if I need some more processing/logic + jobs if u need to update/insert/delete. Personally I think it is much better then throwing all to services.

    • @MarvinAbante-s6r
      @MarvinAbante-s6r 9 หลายเดือนก่อน

      I personally do
      controller

  • @haingocduong5145
    @haingocduong5145 11 หลายเดือนก่อน

    Eloquent is a Repository . Don't use Repository Pattern if your Repository get data by Eloquent . it's meaningless

  • @Hairy89pro
    @Hairy89pro 6 หลายเดือนก่อน

    Thnx for approach guide. But could you not speed up the words partially within eat the volume at the end of phrase.. 😅

  • @ДмитрийБ-ш8р
    @ДмитрийБ-ш8р ปีที่แล้ว

    Its better to use BlogPost::query()->toBase()->first() instead of BlogPost::first()->toArray(), because in second scenario, laravel convert array from DB to Eloquent, and convert eloquent to array. In first scenario you get raw data without converting