Przemysław Przyłucki
Przemysław Przyłucki
  • Видео 50
  • Просмотров 261 400
ChatGPT + Laravel = 🤯🤯🤯 | The FUTURE is HERE.
👇 Code repo & details 👇
In this video series, we'll be building a simple wrapper around OpenAI's client that will allow us to easily integrate it into our platform. We'll also make it hot-swappable so if we ever want to use another AI service, it'll be very easy to do so.
Repo link:
github.com/saas-laravel/laravel-cqrs/commit/2248799dfc7fc2de0b32badfbeb68a6d99ec274b
About me:
przemyslawprzylucki.com
Course website (soon):
saaslaravel.com
Просмотров: 7 593

Видео

Laravel: WAY BETTER Exception handling in 10 minutes
Просмотров 5 тыс.Год назад
👇 Code repo & details 👇 In this video we'll expand on the previous video I made about exception handling in Laravel, and I'll try to propose a new solution. Code: github.com/saas-laravel/laravel-cqrs/commit/251e42c9be5df75c817d5f4295e441024da74acc Previous video: ruclips.net/video/0AAg47xygTI/видео.html About me: przemyslawprzylucki.com X / Twitter: x.com/przylucki_p More content (soon): saasla...
Laravel: DO NOT interact with 3rd party code like that... (Interfaces & DI in Laravel)
Просмотров 4,4 тыс.Год назад
👇 Code repo & details 👇 In this video we'll talk about how to use third party code, or code connecting to external services in our applications so they're easy to swap, test and maintain. Code: github.com/saas-laravel/laravel-cqrs/commit/462bf6a807bbeba9db6c1220893c2f2e32d13ca5 About me: przemyslawprzylucki.com More content (soon): saaslaravel.com
Laravel: CQRS + Event Bus | DO NOT let your DB go brrrr..
Просмотров 7 тыс.Год назад
👇 Code repo & details 👇 In this video we'll implement a *simple* CQRS system in Laravel: - we'll utilize command bus, queries and commands - we'll create separate read and write repositories - we'll have tons of fun because the real CQRS is the friends we made along the way Code repo: github.com/saas-laravel/laravel-cqrs/tree/main About me: przemyslawprzylucki.com More content (soon): saaslarav...
Laravel: 1,000,000 webhooks/minute?! Ingest webhooks like a PRO
Просмотров 4,9 тыс.Год назад
Hi there! In this video we'll create a webhook ingestion system that'll: - be able to accept *A LOT* of webhooks per second - be independent from our app, so if it goes down, we don't lose the data - never overload our application capacities Code repo: github.com/saas-laravel/webhooks-lambda About me: przemyslawprzylucki.com More content (soon): saaslaravel.com
Testing has never been THIS EASY [Free course: Great Laravel Apps #3]
Просмотров 2,8 тыс.Год назад
Hi there! In this series video I'll be showing you a couple of tips and tricks when it comes to testing I'll walk over the testing tips I like to follow: - arrange, act, assert - slow test detection - extending the base test case with useful helpers - naming conventions - php unit's data providers Resources: - Laravel's website: laravel.com - Code repo: github.com/saas-laravel/laravel-coding Co...
Laravel app can't possibly be THIS good... [Free course: Great Laravel Apps #2]
Просмотров 9 тыс.Год назад
Hi there! In this series video I'll be showing you my preferred version of creating Laravel applications. I'll walk over the project structure that I absolutely love and cover: - Creating custom src/Modules/ directory - Custom Exceptions - Custom Resources - Services - Laravel's Container resolving interfaces - DTOs - Custom Query Buiders - Enums Resources: - Laravel's website: laravel.com - Cu...
Set up Laravel projects like a GOAT [Free course: Great Laravel Apps #1]
Просмотров 7 тыс.Год назад
Hi there! In this series video I'll be showing you my preferred version of creating Laravel applications. We'll start with a project setup, in which we will: - remove redundancies from default setup - install Octane - put Eloquent in strict mode - set up static code analysis - set up styler fixer - configure CI pipeline Resources: - Laravel's website: laravel.com - Laravel Sail: laravel.com/doc...
Are VALUE OBJECTS secretly overpowered?!
Просмотров 3,9 тыс.Год назад
Morning gals and guys. In today's episode we'll talk about value objects and how they can be used. Twitter: przylucki_p More me: saaslaravel.com Website: przemyslawprzylucki.com
Fixing Laravel's BIGGEST PROBLEM (it's not what you think)
Просмотров 2,6 тыс.Год назад
Hi guys! In this quick tip I'll show you how to fix one of Laravel's most annoying things - nulls passed to resources. Website: przemyslawprzylucki.com More me: saaslaravel.com
Laravel's macros make your life EASY PEASY
Просмотров 3,7 тыс.Год назад
Hi guys! Let's take a look at Laravel's macros and how they can make your life easier. About me: przemyslawprzylucki.com Course: saaslaravel.com
WOW! Laravel's pipeline pattern is AWESOME
Просмотров 14 тыс.Год назад
Hi guys! In this video series, I'll try to showcase two good usecases for the pipeline pattern More me: przemyslawprzylucki.com Saaslaravel: saaslaravel.com
Custom notification channel in Laravel
Просмотров 3,3 тыс.Год назад
Hi guys! In this video series, we'll be creating a custom notification channel in Laravel. We'll build it to handle a super cool platform - logsnag.com More me: Courses: saaslaravel.com Personal website: przemyslawprzylucki.com
Laravel: Simple CI in Github Actions
Просмотров 7 тыс.Год назад
Hi guys! In this video, we'll be building a really simple CI in Github Actions. Hopefully you'll enjoy it! More me: saaslaravel.com Morer me: przemyslawprzylucki.com Bird app: przylucki_p
Laravel: Simple Strategy Pattern
Просмотров 3,6 тыс.Год назад
Hi guys! In this video I'll show you how to utilize a simple strategy pattern to remove some of the more complex "ifs" in your codebase.
Laravel: The BEST way to handle exceptions
Просмотров 18 тыс.Год назад
Laravel: The BEST way to handle exceptions
Creating my first Laravel Package 📦
Просмотров 8 тыс.Год назад
Creating my first Laravel Package 📦
Laravel SaaS Idea: Mockup Generator
Просмотров 1,8 тыс.Год назад
Laravel SaaS Idea: Mockup Generator
Refactoring real-world Laravel app. Who wrote THIS CODE?!
Просмотров 10 тыс.Год назад
Refactoring real-world Laravel app. Who wrote THIS CODE?!
Laravel: Repository Pattern in practice
Просмотров 13 тыс.Год назад
Laravel: Repository Pattern in practice
Laravel: how to deal with THICC models
Просмотров 2,5 тыс.Год назад
Laravel: how to deal with THICC models
Laravel + Service Pattern + DTOs = ❤️❤️❤️
Просмотров 54 тыс.Год назад
Laravel Service Pattern DTOs = ❤️❤️❤️
5 tips to make your Laravel application *instantly* better
Просмотров 2,9 тыс.Год назад
5 tips to make your Laravel application *instantly* better
Launching my secret project...
Просмотров 360Год назад
Launching my secret project...
Feature Flags in Laravel
Просмотров 1,5 тыс.Год назад
Feature Flags in Laravel
Still using "confirm()"? Use this instead!
Просмотров 819Год назад
Still using "confirm()"? Use this instead!
Modals in Vue. Building UI Design System [#6]
Просмотров 2392 года назад
Modals in Vue. Building UI Design System [#6]
Vue UI Design System [#5] - Icon Component
Просмотров 1,7 тыс.2 года назад
Vue UI Design System [#5] - Icon Component
Vue UI Design System [#4] - Badges
Просмотров 5342 года назад
Vue UI Design System [#4] - Badges
Vue UI Design System [#3] - Avatars
Просмотров 5802 года назад
Vue UI Design System [#3] - Avatars

Комментарии

  • @farsicode
    @farsicode 7 дней назад

    Great ❤

  • @denisadilev6410
    @denisadilev6410 17 дней назад

    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]. ??

  • @paperell
    @paperell 19 дней назад

    nice work

  • @SaqibNaeem-ob7gp
    @SaqibNaeem-ob7gp 23 дня назад

    Isn't it over complicated

  • @ЕвгенийБородкин-ы8э

    Great lesson! Thanks a lot!

  • @spaceenthusiast5696
    @spaceenthusiast5696 Месяц назад

    Dzień dobry mate! I just discovered you! Keep up the good work! Subscribed!

  • @AdilKhan-vf2es
    @AdilKhan-vf2es 2 месяца назад

    Good tutorial. This was cool. What's with the folder structure? Wonder why he didn't talk about why there's a src folder there.

  • @mayurmali9761
    @mayurmali9761 2 месяца назад

    Does this code handles databse execption or any other execption rather than custom execption?

  • @khanra17
    @khanra17 2 месяца назад

    Why TF you decreased the pitch soo much ? these annoying youtubers, never gonna learn

    • @saaslaravel
      @saaslaravel 2 месяца назад

      That's how my voice sounds bud, it's just noice reduction + VO EQ, enjoy your day!

    • @jakubn3565
      @jakubn3565 2 месяца назад

      Agreed

    • @khanra17
      @khanra17 2 месяца назад

      ​@@saaslaravel No it's not. You never know your voice! Record someone you speak to in real life. Apply the same processing. And realize how far you are from a "human voice".

  • @sarajitbarmon5149
    @sarajitbarmon5149 3 месяца назад

    Awesome

  • @fikrilhadadramadhani1272
    @fikrilhadadramadhani1272 3 месяца назад

    thank you bro. penjelasannya bagus

  • @MohamedElguarir
    @MohamedElguarir 4 месяца назад

    this is probably why the JS ecosystem always better, the vercel AI SDK is just to good to not use.

  • @MartinPL
    @MartinPL 4 месяца назад

    Laravel uses "messages" objects with builder pattern not DTOs but that is detail ofc :) Thanks for video

  • @SemenP-i4x
    @SemenP-i4x 4 месяца назад

    extremely like. always as usually constantly %)

  • @SemenP-i4x
    @SemenP-i4x 4 месяца назад

    When I listen to your fluent English, it sounds like you're being electrocuted or sitting on a . Tnnx for explanantion

  • @TheOfficialIH4xx3R
    @TheOfficialIH4xx3R 4 месяца назад

    wow

  • @intipontt7490
    @intipontt7490 4 месяца назад

    So instead of having a simple controller method that only interacts with a FormRequest and a Model, you've now added complexity with a superfluous Service class and a DTO. It may look cool, but using such a basic examples to try and demonstrate their usefulness is a mistake. public function store(StoreBlogPostRequest $request) { $blogPost = BlogPost::create($request->validated() + ['source' => BlogPostSource::App]); return new JsonResponse(BlogPostResource::make($blogPost), Response::HTTP_CREATED); } public function update(UpdateBlogPostRequest $request, BlogPost $blogPost) { $blogPost->update($request->validated()); return new JsonResponse(BlogPostResource::make($blogPost->fresh()), Response::HTTP_OK); } What should have taken 2-4 lines in 2 methods contained in 1 class became 6 methods inside 3 classes. There is a case to be made for Service classes and DTOs, but this is not one of them.

  • @ramazanaktas748
    @ramazanaktas748 4 месяца назад

    Holy f I was trying to build my own

  • @PrajwalMaharjan-bc1sp
    @PrajwalMaharjan-bc1sp 4 месяца назад

    how is it different from repository pattern?

  • @Hairy89pro
    @Hairy89pro 4 месяца назад

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

  • @harshadevapriyankarabandar5456
    @harshadevapriyankarabandar5456 4 месяца назад

    You have great videos in laravel. keep this up

  • @harshadevapriyankarabandar5456
    @harshadevapriyankarabandar5456 4 месяца назад

    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.

  • @muhammadumarsotvoldiev8768
    @muhammadumarsotvoldiev8768 4 месяца назад

    Thank you very much!

  • @IachimovschiDaniel-p1c
    @IachimovschiDaniel-p1c 5 месяцев назад

    We wanted you Przemysław Przyłucki ? ?How are you ? why you dony push video ? push video about you , channel please!!!!

  • @abdulrehman-it7rp
    @abdulrehman-it7rp 5 месяцев назад

    Plz explain why you are using such complex things pipelines, ___invoke function, Just if condition for fillter , and if it is too mush code put it in traits

  • @programmertelo
    @programmertelo 5 месяцев назад

    thanks for the great video

  • @julendominadas4040
    @julendominadas4040 5 месяцев назад

    i have never worked with any php framework before. Its funny to see that back when i started learning php i designed a request handler that seems pretty similar to this piece of laravel.

  • @B0re_d
    @B0re_d 5 месяцев назад

    I would add the transformation method to request classes. In my opinion you should not have to extend DTO classes when adding new pieces of code eg. API v2 instead you should have a method called asDto(or toDto) in the request class and call them instead of making X static factory methods. Overall great content :)

  • @mykola-rohoza
    @mykola-rohoza 5 месяцев назад

    Great tips, but i more like to use different actions as class, not as a part of service. Its easy to extend from basic model to others

  • @pattystaricha799
    @pattystaricha799 6 месяцев назад

    Any tips for getting this to work with Vue 3?

  • @josephmakram4342
    @josephmakram4342 6 месяцев назад

    This is awesome, i hope you deep dive on DDD on the next episodes

  • @mohammadjavadrajabloo2711
    @mohammadjavadrajabloo2711 6 месяцев назад

    Good Video!

  • @nicolascanala9940
    @nicolascanala9940 6 месяцев назад

    Man you would love C# haha. Thanks for the video!

  • @dyrossaur
    @dyrossaur 6 месяцев назад

    Use handle() method instead, not the __invoke().

  • @nicolascanala9940
    @nicolascanala9940 6 месяцев назад

    Hey! How do you approach having different validation rules in the store and update actions? For example, a StoreBlogRequest which marks all fields as required, VS an UpdateBlogRequest which doesn't (for example, you just wanna update the name). Would you create more than one DTO and mark the properties as nullable?

    • @saaslaravel
      @saaslaravel 6 месяцев назад

      Hey there! It depends on the situation, generally speaking with updates I'd not go with nulls because partial updates are pretty sexy - if you use spatie/laravel-data - they handle it out of the box with Optional type hint

  • @patricknelson
    @patricknelson 6 месяцев назад

    Hopefully if you're going to be making upstream requests on every page load (or every user login) the developer will be making sure to perform reasonable caching. Since this is Laravel it should be pretty configurable, but something to be conscientious of. Also, presumably the upstream service (e.g. growthbook, in this case) is utilizing standard HTTP cache headers that Guzzle can respect and cache centrally using the configured middleware (e.g. memcached if you're on a cluster or something).

    • @saaslaravel
      @saaslaravel 6 месяцев назад

      It's been cached in the video I believe. The http call is only made for fetching flags, they are resolved locally. Great piece of advice though!

  • @3dxspx703
    @3dxspx703 6 месяцев назад

    Yikes. Model mutators and observers will be enough guys. But if you want to Over-engineer your code, then go on with dto or something like repository pattern. 😅

    • @saaslaravel
      @saaslaravel 6 месяцев назад

      Until your app had 1200 endpoints and some places haven't been touched for years - yeah

    • @3dxspx703
      @3dxspx703 6 месяцев назад

      @@saaslaravel yeah? But I prefer laravel's defaults for easier maintenance and debugging. Also KISS. Pfft

  • @NoobDosTeclados
    @NoobDosTeclados 6 месяцев назад

    Really good man! I would like to know what you think about adding an extra layer: the repository. Because thats kinda whats going on my in job rn, laravel + service pattern + dto + repository, I feel like the Model itself could act as the Repository, what do you think?

    • @saaslaravel
      @saaslaravel 6 месяцев назад

      It really depends on what you are looking for from the solution. I'd say - if you don't have a good reason to introduce a repository - don't do it. If you want to have more fine grained control over your persistence layer (i.e to handle CQRS more easily) go for repository!

  • @Chugouale
    @Chugouale 6 месяцев назад

    Awesome video series. what laravel version is this ?

    • @saaslaravel
      @saaslaravel 6 месяцев назад

      I believe it was 10

  • @Pavelbrov
    @Pavelbrov 6 месяцев назад

    17:20 - Shouldn't our DTO have a method like toArray so that we can manually avoid passing all the parameters? I mean, they correspond to the properties of the model. Or is this a bad practice? Like this public function toArray(): array { $properties = get_object_vars($this); $array = []; foreach ($properties as $key => $value) { $snakeCaseKey = Str::snake($key); $array[$snakeCaseKey] = $value; } return $array; } and then BlogPost::create($dto->toArray());

    • @saaslaravel
      @saaslaravel 6 месяцев назад

      I prefer to be explicit when possible, realistically, just use spatie/laravel-data which handles this out of the box

  • @Pavelbrov
    @Pavelbrov 6 месяцев назад

    5:50 - what about duplication in BlogPostRequest validation for api and app? Can we get rid of it?

  • @icantchosemyname
    @icantchosemyname 6 месяцев назад

    I didn’t know about pipeline but i think laravel provides the "when()" method on query builder instances. It’s simple and "eloquent" (pun intended 😂 ) i think but you probably already know about it. Your post seems to be for demonstrating the pipeline tool, thanks.

  • @HieuNguyenTrung-ud6dj
    @HieuNguyenTrung-ud6dj 6 месяцев назад

    I think we should use RepositoryContract interfaces instead of Repository classes in the constructors of Handler classes.

    • @saaslaravel
      @saaslaravel 6 месяцев назад

      You're completely right! That was a brain fart on my end!

  • @niceteg
    @niceteg 7 месяцев назад

    We miss you

    • @saaslaravel
      @saaslaravel 7 месяцев назад

      I may or may not be getting back soon 👀

    • @niceteg
      @niceteg 7 месяцев назад

      @@saaslaravel all your your videos are inspiring! Just buil some CRM example with DB structure and it will be the,🚀

  • @nobodyspecial946
    @nobodyspecial946 7 месяцев назад

    Mordo, if you use AWS there is a native way to integrate it though Event Bridge - almost no code solution and you don't pay for lambda invoke. Trust me mordziu I am an engineer. But well explained, thumb up

    • @saaslaravel
      @saaslaravel 7 месяцев назад

      Prawdopodobnie najlepszy komentarz jaki kiedykolwiek dostalem, dzieki za rade xd