<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Oussama</title>
    <description>The latest articles on DEV Community by Oussama (@sky_0xs).</description>
    <link>https://dev.to/sky_0xs</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F815406%2F84c92641-3826-480c-bb77-aefa18d628b0.jpeg</url>
      <title>DEV Community: Oussama</title>
      <link>https://dev.to/sky_0xs</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sky_0xs"/>
    <language>en</language>
    <item>
      <title>Count Models and Get Detailed Analytics With Laravisit Package</title>
      <dc:creator>Oussama</dc:creator>
      <pubDate>Tue, 15 Feb 2022 00:00:22 +0000</pubDate>
      <link>https://dev.to/sky_0xs/count-models-and-get-detailed-analytics-with-laravisit-package-57i9</link>
      <guid>https://dev.to/sky_0xs/count-models-and-get-detailed-analytics-with-laravisit-package-57i9</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/coderflexx/laravisit"&gt;Laravisit&lt;/a&gt; by &lt;a href="https://github/ousid"&gt;@ousid&lt;/a&gt; is a package to keep track of your pages &amp;amp; understand your audience, by providing a helpful API methods, easy to implement, and easy to use.&lt;/p&gt;

&lt;p&gt;
    &lt;br&gt;&lt;br&gt;
    &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kerZXlp3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://github.com/coderflexx/laravisit/raw/main/docs/images/Logo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kerZXlp3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://github.com/coderflexx/laravisit/raw/main/docs/images/Logo.png" alt="Laravisit Logo" width="261" height="184"&gt;&lt;/a&gt;
    &lt;br&gt;&lt;br&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Prerequisite
&lt;/h2&gt;

&lt;p&gt;You need to know the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Need to know &lt;a href="https://php.net"&gt;PHP&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Basics on Laravel &amp;amp; the artisan command &lt;a href="https://laravel.com"&gt;Laravel&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Basics on composer [Composer][&lt;a href="https://getcomposer.org"&gt;https://getcomposer.org&lt;/a&gt;]&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Why this package?
&lt;/h1&gt;

&lt;p&gt;If you want to keep track of your pages visits, and understand your audience (users), this package is built for you, to save you time and make your development experience simpler.&lt;/p&gt;

&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;

&lt;p&gt;You can install the package via composer:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;composer require coderflexx/laravisit
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can publish the config file with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;vendor:publish &lt;span class="nt"&gt;--provider&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"Coderflex&lt;/span&gt;&lt;span class="se"&gt;\\&lt;/span&gt;&lt;span class="s2"&gt;Laravisit&lt;/span&gt;&lt;span class="se"&gt;\\&lt;/span&gt;&lt;span class="s2"&gt;LaravisitServiceProvider"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;then, run database migration&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;php artisan migrate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is the contents of the published config file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="cm"&gt;/*
    |--------------------------------------------------------------------------
    | User Namespace
    |--------------------------------------------------------------------------
    |
    | This value informs Laravist which namespace you will be 
    | selecting to get the user model instance
    | If this value equals to null, "\Coderflex\Laravisit\Models\User" will be used 
    | by default.
    |
    */&lt;/span&gt;
    &lt;span class="s1"&gt;'user_namespace'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;"\Coderflex\Laravisit\Models\User"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;];&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Usage
&lt;/h2&gt;

&lt;p&gt;See more details and use cases on the &lt;a href="https://github.com/coderflexx/laravisit#usage"&gt;package docs&lt;/a&gt; page.&lt;/p&gt;

&lt;h2&gt;
  
  
  Changelog
&lt;/h2&gt;

&lt;p&gt;You can follow the changes on this &lt;a href="https://github.com/coderflexx/laravisit"&gt;package&lt;/a&gt; by accessing the &lt;a href="https://github.com/coderflexx/laravisit/blob/main/CHANGELOG.md"&gt;changelog&lt;/a&gt; or the &lt;a href="https://github.com/coderflexx/laravisit/releases"&gt;releases&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Contributing
&lt;/h2&gt;

&lt;p&gt;If you want to contribute, feel free to read the &lt;a href="https://github.com/coderflexx/laravisit/blob/main/.github/CONTRIBUTING.md"&gt;CONTRIBUTING&lt;/a&gt; guidelines, and make your &lt;code&gt;PR&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Today we s learned about &lt;a href="https://github.com/coderflexx/laravisit"&gt;Laravisit&lt;/a&gt; package, and how to use it. To make our development process easier and save us time.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>laravel</category>
    </item>
    <item>
      <title>Decorate Your Model Attributes Using Laravel Presenter Package</title>
      <dc:creator>Oussama</dc:creator>
      <pubDate>Mon, 14 Feb 2022 23:34:12 +0000</pubDate>
      <link>https://dev.to/sky_0xs/decorate-your-model-attributes-using-laravel-presenter-package-3fl7</link>
      <guid>https://dev.to/sky_0xs/decorate-your-model-attributes-using-laravel-presenter-package-3fl7</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/coderflexx/laravel-presenter"&gt;Laravel Presenter&lt;/a&gt; by &lt;a href="https://github.com/ousid"&gt;@ousid&lt;/a&gt; is a clean way to decorate your models, &lt;br&gt;
and incrementally refactor from the simplest solution to a clean, reusable system.&lt;/p&gt;
&lt;h2&gt;
  
  
  Prerequisite
&lt;/h2&gt;

&lt;p&gt;You need to know the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Need to know &lt;a href="https://php.net"&gt;PHP&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Basics on Laravel &amp;amp; the artisan command &lt;a href="https://laravel.com"&gt;Laravel&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Basics on composer [Composer][&lt;a href="https://getcomposer.org"&gt;https://getcomposer.org&lt;/a&gt;]&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Why this package?
&lt;/h2&gt;

&lt;p&gt;Sometimes we need to present some custom attributes and re-use them in many places in our app, and the simplest way is to put them inside your &lt;code&gt;model&lt;/code&gt; class, but is it efficient?&lt;br&gt;
This page allows you to make a place for all your custom attribute methods and decorate them to use them wherever you want, and help you to maintain/refactor your code easily.&lt;/p&gt;
&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;

&lt;p&gt;You can install the package via composer:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;composer require coderflexx/laravel-presenter
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can publish the config file with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;vendor:publish &lt;span class="nt"&gt;--provider&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"Coderflex&lt;/span&gt;&lt;span class="se"&gt;\L&lt;/span&gt;&lt;span class="s2"&gt;aravelPresenter&lt;/span&gt;&lt;span class="se"&gt;\L&lt;/span&gt;&lt;span class="s2"&gt;aravelPresenterServiceProvider"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is the contents of the published config file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;

    &lt;span class="cm"&gt;/*
    |--------------------------------------------------------------------------
    | Presenter Namespace
    |--------------------------------------------------------------------------
    |
    | This value informs LaravelPresenter which namespace you will be 
    | selecting to store your presenters by default.
    | If this value equals to null, "App\Presenter" will be used 
    | by default.
    |
    */&lt;/span&gt;

    &lt;span class="s1"&gt;'presenter_namespace'&lt;/span&gt;   &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'App\\Presenters'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;];&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Usage
&lt;/h2&gt;

&lt;p&gt;The implementation of this package is so simple, all what you need to do is the following:&lt;/p&gt;

&lt;h2&gt;
  
  
  Model Implementation
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt; Implement &lt;code&gt;CanPresent&lt;/code&gt; Interface &lt;/li&gt;
&lt;li&gt; Use &lt;code&gt;UsesPresenters&lt;/code&gt; Trait
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="kn"&gt;use&lt;/span&gt; &lt;span class="nc"&gt;Coderflex\LaravelPresenter\Concerns\CanPresent&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kn"&gt;use&lt;/span&gt; &lt;span class="nc"&gt;Coderflex\LaravelPresenter\Concerns\UsesPresenters&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="c1"&gt;// ...&lt;/span&gt;

&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;User&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="nc"&gt;Authenticatable&lt;/span&gt; &lt;span class="kd"&gt;implements&lt;/span&gt; &lt;span class="nc"&gt;CanPresent&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kn"&gt;use&lt;/span&gt; &lt;span class="nc"&gt;UsesPresenters&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="c1"&gt;// ...&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Create New Model Presenter class
&lt;/h2&gt;

&lt;p&gt;This package gives you an easy way to generate new &lt;code&gt;Presenter&lt;/code&gt; class, all you need to do is to use &lt;code&gt;presenter:make&lt;/code&gt; command.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;php artisan presenter:make UserPresneter
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;UserPresenter&lt;/code&gt; in our case, leaves by default in &lt;code&gt;App\Presenters&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;This is the contents of the &lt;code&gt;UserPresenter&lt;/code&gt; file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt;

&lt;span class="kn"&gt;namespace&lt;/span&gt; &lt;span class="nn"&gt;App\Presenters&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kn"&gt;use&lt;/span&gt; &lt;span class="nc"&gt;Coderflex\LaravelPresenter\Presenter&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;UserPresenter&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="nc"&gt;Presenter&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// &lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you want to change the directory, you have two options.&lt;/p&gt;

&lt;p&gt;First options is to set the full namespace while you're creating the presenter class&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;php artisna presneter:make App&lt;span class="se"&gt;\M&lt;/span&gt;odels&lt;span class="se"&gt;\P&lt;/span&gt;resenter&lt;span class="se"&gt;\U&lt;/span&gt;serPresenter
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or change &lt;code&gt;presenter_namespace&lt;/code&gt; from &lt;code&gt;config/laravel-presenter&lt;/code&gt; file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="mf"&gt;...&lt;/span&gt;

    &lt;span class="s1"&gt;'presenter_namespace'&lt;/span&gt;   &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'App\\Presenters'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;

    &lt;span class="mf"&gt;...&lt;/span&gt;
&lt;span class="p"&gt;];&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Using the &lt;code&gt;Presenter&lt;/code&gt; Generated Class
&lt;/h2&gt;

&lt;p&gt;After you create the presenter class, you need to register it on the &lt;code&gt;Model&lt;/code&gt; by adding the &lt;code&gt;$presenters&lt;/code&gt; protected property:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="kn"&gt;use&lt;/span&gt; &lt;span class="nc"&gt;App\Presenters\UserPresenter&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kn"&gt;use&lt;/span&gt; &lt;span class="nc"&gt;Coderflex\LaravelPresenter\Concerns\CanPresent&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kn"&gt;use&lt;/span&gt; &lt;span class="nc"&gt;Coderflex\LaravelPresenter\Concerns\UsesPresenters&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="c1"&gt;// ...&lt;/span&gt;

&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;User&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="nc"&gt;Authenticatable&lt;/span&gt; &lt;span class="kd"&gt;implements&lt;/span&gt; &lt;span class="nc"&gt;CanPresent&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kn"&gt;use&lt;/span&gt; &lt;span class="nc"&gt;UsesPresenters&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="k"&gt;protected&lt;/span&gt; &lt;span class="nv"&gt;$presenters&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="s1"&gt;'default'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nc"&gt;UserPresenter&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;];&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;By default, the type of your presenter class is &lt;code&gt;default&lt;/code&gt;, but you can use as many of presenters you want, just by identifying the type in &lt;code&gt;$presenters&lt;/code&gt; property.&lt;/p&gt;

&lt;h2&gt;
  
  
  Real Life Example
&lt;/h2&gt;

&lt;p&gt;Now, after we generated the &lt;code&gt;presenter&lt;/code&gt; class, and we implemented it successfully in our model, we can use it like so:&lt;/p&gt;

&lt;p&gt;In your &lt;code&gt;UserPresenter&lt;/code&gt; class or any presenter class you generated.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="mf"&gt;...&lt;/span&gt;
&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;UserPresenter&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="nc"&gt;Presenter&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;fullName&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;$this&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;first_name&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;$this&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;last_name&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="mf"&gt;...&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We add a new method to present the &lt;code&gt;fullName&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;In your blade or any place you want, you can do:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nv"&gt;$user&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;present&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;fullName&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Your application will show the full name from the method you added.&lt;/p&gt;

&lt;h2&gt;
  
  
  Adding Another Presenter Type:
&lt;/h2&gt;

&lt;p&gt;Like I said above, by default the type will be &lt;code&gt;deafult&lt;/code&gt; but, you can add more types as you need.&lt;/p&gt;

&lt;p&gt;Here is an example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="kn"&gt;use&lt;/span&gt; &lt;span class="nc"&gt;App\Presenters\UserPresenter&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kn"&gt;use&lt;/span&gt; &lt;span class="nc"&gt;Coderflex\LaravelPresenter\Concerns\CanPresent&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kn"&gt;use&lt;/span&gt; &lt;span class="nc"&gt;Coderflex\LaravelPresenter\Concerns\UsesPresenters&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="c1"&gt;// ...&lt;/span&gt;

&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;User&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="nc"&gt;Authenticatable&lt;/span&gt; &lt;span class="kd"&gt;implements&lt;/span&gt; &lt;span class="nc"&gt;CanPresent&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kn"&gt;use&lt;/span&gt; &lt;span class="nc"&gt;UsesPresenters&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="k"&gt;protected&lt;/span&gt; &lt;span class="nv"&gt;$presenters&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="s1"&gt;'default'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nc"&gt;UserPresenter&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="s1"&gt;'setting'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nc"&gt;UserSettingPresenter&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;];&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Generate new &lt;code&gt;UserSettingPresenter&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;php artisan presenter:make UserSettingPresenter
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Add anything to &lt;code&gt;UserSettingPresenter&lt;/code&gt; method&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="mf"&gt;...&lt;/span&gt;
&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;UserSettingPresenter&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="nc"&gt;Presenter&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;lang&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nv"&gt;$this&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;settings&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;defaultLang&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="mf"&gt;...&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Finally, set &lt;code&gt;setting&lt;/code&gt; as a type:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nv"&gt;$user&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;present&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'setting'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;lang&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;By that, you can split your logic and make your code base even cleaner.&lt;/p&gt;

&lt;h2&gt;
  
  
  Changelog
&lt;/h2&gt;

&lt;p&gt;You can follow the changes on this &lt;a href="https://github.com/coderflexx/laravel-presenter"&gt;package&lt;/a&gt; by accessing the &lt;a href="https://github.com/coderflexx/laravel-presenter/blob/main/CHANGELOG.md"&gt;changelog&lt;/a&gt; or the &lt;a href="https://github.com/coderflexx/laravel-presenter/releases"&gt;releases&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Contributing
&lt;/h2&gt;

&lt;p&gt;If you want to contribute, feel free to read the &lt;a href="https://github.com/coderflexx/laravel-presenter/blob/main/.github/CONTRIBUTING.md"&gt;CONTRIBUTING&lt;/a&gt; guidelines, and make your &lt;code&gt;PR&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Today we s learned about &lt;a href="https://github.com/coderflexx/laravel-presenter"&gt;Laravel Presenter&lt;/a&gt; package, and how to use it. To make our development process easier and save us time.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>laravel</category>
      <category>packages</category>
    </item>
    <item>
      <title>Laravel 9 released, See What's new.</title>
      <dc:creator>Oussama</dc:creator>
      <pubDate>Wed, 09 Feb 2022 13:13:05 +0000</pubDate>
      <link>https://dev.to/sky_0xs/laravel-9-released-see-whats-new-2599</link>
      <guid>https://dev.to/sky_0xs/laravel-9-released-see-whats-new-2599</guid>
      <description>&lt;h1&gt;
  
  
  Introduction
&lt;/h1&gt;

&lt;p&gt;Laravel 9 is finally here! It comes with a ton of handy new features, from routes to database, and this is what we are going to discover in this article.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ROCXtRCD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/kZrkzMs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ROCXtRCD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/kZrkzMs.png" alt="Laravel new design" width="880" height="466"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Prerequisite
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Knowledge of PHP&lt;/li&gt;
&lt;li&gt;Basic Knowledge of Laravel&lt;/li&gt;
&lt;li&gt;PHP v8.0 at minimum&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Releases Schedule
&lt;/h1&gt;

&lt;p&gt;For LTS releases, such as Laravel 9, bug fixes are provided for 2 years and security fixes are provided for 3 years. These releases provide the longest window of support and maintenance. For general releases, bug fixes are provided for 18 months and security fixes are provided for 2 years. For all additional libraries, including Lumen, only the latest release receives bug fixes. In addition, please review the database versions &lt;a href="https://laravel.com/docs/9.x/database#introduction"&gt;supported by Laravel&lt;/a&gt;.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Version&lt;/th&gt;
&lt;th&gt;PHP (*)&lt;/th&gt;
&lt;th&gt;Release&lt;/th&gt;
&lt;th&gt;Bug Fixes Until&lt;/th&gt;
&lt;th&gt;Security Fixes Until&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;6 (LTS) (**)&lt;/td&gt;
&lt;td&gt;7.2 - 8.0&lt;/td&gt;
&lt;td&gt;September 3rd, 2019&lt;/td&gt;
&lt;td&gt;January 25th, 2022&lt;/td&gt;
&lt;td&gt;September 6th, 2022&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;7(-)&lt;/td&gt;
&lt;td&gt;7.2 - 8.0&lt;/td&gt;
&lt;td&gt;March 3rd, 2020&lt;/td&gt;
&lt;td&gt;October 6th, 2020&lt;/td&gt;
&lt;td&gt;March 3rd, 2021&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;7.3 - 8.1&lt;/td&gt;
&lt;td&gt;September 8th, 2020&lt;/td&gt;
&lt;td&gt;July 26th, 2022&lt;/td&gt;
&lt;td&gt;January 24th, 2023&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;9 (LTS)&lt;/td&gt;
&lt;td&gt;8.0 - 8.1&lt;/td&gt;
&lt;td&gt;February 8th, 2022&lt;/td&gt;
&lt;td&gt;February 8th, 2024&lt;/td&gt;
&lt;td&gt;February 8th, 2025&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;8.0 - 8.1&lt;/td&gt;
&lt;td&gt;February 7th, 2023&lt;/td&gt;
&lt;td&gt;August 7th, 2024&lt;/td&gt;
&lt;td&gt;February 7th, 2025&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;(-) End of life&lt;br&gt;
(&lt;em&gt;) Supported PHP versions&lt;br&gt;
(&lt;/em&gt;*) Security fixes only&lt;/p&gt;
&lt;h1&gt;
  
  
  Laravel 9 new features
&lt;/h1&gt;
&lt;h2&gt;
  
  
  New route:list look
&lt;/h2&gt;

&lt;p&gt;when you type &lt;code&gt;php artisan route:list&lt;/code&gt; you will see a brand-new &lt;strong&gt;design&lt;/strong&gt; look, besides you can see which middleware applied to each route!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--UQEdsuf2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/1mwTfFx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--UQEdsuf2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/1mwTfFx.png" alt="Route:list" width="880" height="138"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Route Groups
&lt;/h2&gt;

&lt;p&gt;You may now use the &lt;code&gt;controller&lt;/code&gt; method to define the common controller for all the routes within the group. Then, when defining the routes, you only need to provide the controller method that they invoke:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="kn"&gt;use&lt;/span&gt; &lt;span class="nc"&gt;App\Http\Controllers\OrderController&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nc"&gt;Route&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;controller&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;OrderController&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;class&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;group&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nc"&gt;Route&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'/orders/{id}'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'show'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nc"&gt;Route&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;post&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'/orders'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'store'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Forced Scoped Bindings
&lt;/h2&gt;

&lt;p&gt;you may now instruct Laravel to scope "child" bindings even when a custom key is not provided. To do so, you may invoke the &lt;code&gt;scopeBindings&lt;/code&gt; method when defining your route:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="kn"&gt;use&lt;/span&gt; &lt;span class="nc"&gt;App\Models\Post&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kn"&gt;use&lt;/span&gt; &lt;span class="nc"&gt;App\Models\User&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nc"&gt;Route&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'/users/{user}/posts/{post}'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;User&lt;/span&gt; &lt;span class="nv"&gt;$user&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;Post&lt;/span&gt; &lt;span class="nv"&gt;$post&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nv"&gt;$post&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;scopeBindings&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or, you may instruct an entire group of &lt;code&gt;route&lt;/code&gt; definitions to use scoped bindings:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nc"&gt;Route&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;scopeBindings&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;group&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nc"&gt;Route&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'/users/{user}/posts/{post}'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;User&lt;/span&gt; &lt;span class="nv"&gt;$user&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;Post&lt;/span&gt; &lt;span class="nv"&gt;$post&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nv"&gt;$post&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you want to know more, you may take a look &lt;a href="https://laravel.com/docs/9.x/releases#forced-scoping-of-route-bindings"&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Blade Template Inline Rendering
&lt;/h2&gt;

&lt;p&gt;Sometimes you may need to transform a raw Blade template string into valid HTML. You may accomplish this using the &lt;code&gt;render&lt;/code&gt; method provided by the &lt;code&gt;Blade&lt;/code&gt; facade. The &lt;code&gt;render&lt;/code&gt; method accepts the Blade template string and an optional array of data to provide to the template:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="kn"&gt;use&lt;/span&gt; &lt;span class="nc"&gt;Illuminate\Support\Facades\Blade&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nc"&gt;Blade&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;render&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'Hello, {{ $name }}'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'name'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'Oussama Sid'&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Similarly, the &lt;code&gt;renderComponent&lt;/code&gt; method may be used to render a given class component by passing the component instance to the method:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="kn"&gt;use&lt;/span&gt; &lt;span class="nc"&gt;App\View\Components\HelloComponent&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nc"&gt;Blade&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;renderComponent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;HelloComponent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'Oussama Sid'&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Optional Bootstrap 5 Pagination Views
&lt;/h2&gt;

&lt;p&gt;Laravel now includes pagination views built using &lt;a href="https://getbootstrap.com/"&gt;Bootstrap 5&lt;/a&gt;. To use these views instead of the default Tailwind views, you may call the paginator's &lt;code&gt;useBootstrapFive&lt;/code&gt; method within the boot method of your &lt;code&gt;App\Providers\AppServiceProvider&lt;/code&gt; class:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="kn"&gt;use&lt;/span&gt; &lt;span class="nc"&gt;Illuminate\Pagination\Paginator&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="cd"&gt;/**
 * Bootstrap any application services.
 *
 * @return void
 */&lt;/span&gt;
&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;boot&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nc"&gt;Paginator&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;useBootstrapFive&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Brand new Ignition Page
&lt;/h2&gt;

&lt;p&gt;Ignition, the open source exception debug page created by &lt;a href="https://spatie.be/"&gt;Spatie&lt;/a&gt;, has been redesigned from the ground up. The new, improved Ignition ships with Laravel &lt;code&gt;9.x&lt;/code&gt; and includes &lt;strong&gt;light&lt;/strong&gt; / &lt;strong&gt;dark&lt;/strong&gt; themes, customizable &lt;strong&gt;"open in editor"&lt;/strong&gt; functionality, and more.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TGIIBzYc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/483853/149235404-f7caba56-ebdf-499e-9883-cac5d5610369.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TGIIBzYc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/483853/149235404-f7caba56-ebdf-499e-9883-cac5d5610369.png" alt="Brand new Ignition Page" width="880" height="575"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  str() helper function
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;str&lt;/code&gt; function returns a new &lt;code&gt;Illuminate\Support\Stringable&lt;/code&gt; instance for the given string. This function is equivalent to the &lt;code&gt;Str::of&lt;/code&gt; method:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nv"&gt;$string&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'Oussama'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;' Sid'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// Oussama Sid&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If no argument is provided to the str function, the function returns an instance of &lt;code&gt;Illuminate\Support\Str&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;
&lt;span class="nv"&gt;$string&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;str&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'Oussama Sid'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;uppercase&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;span class="c1"&gt;// OUSSAMA SID&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  to_route() helper function
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;to_route&lt;/code&gt; function generates a redirect HTTP response for a given named route, providing an expressive way to redirect to named routes from your routes and controllers:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;to_route&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'users.show'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'user'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;

&lt;span class="c1"&gt;// equivalent to&lt;/span&gt;

&lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;redirect&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;route&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'user.show'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'user'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Enum Attribute Casting
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;Enum casting is only available for &lt;strong&gt;PHP 8.1+&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Eloquent now allows you to cast your &lt;strong&gt;attribute&lt;/strong&gt; values to PHP &lt;code&gt;enums&lt;/code&gt;. To accomplish this, you may specify the attribute and &lt;code&gt;enum&lt;/code&gt; you wish to cast in your model's &lt;code&gt;$casts&lt;/code&gt; property array:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create &lt;code&gt;PostStatus&lt;/code&gt; class inside &lt;code&gt;app/Enums&lt;/code&gt; directory
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="kn"&gt;namespace&lt;/span&gt; &lt;span class="nn"&gt;App\Enums\PostStatus&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="n"&gt;enum&lt;/span&gt; &lt;span class="nc"&gt;PostStatus&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="nc"&gt;Published&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="nc"&gt;Pending&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="nc"&gt;Archived&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="nc"&gt;Draft&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Inside your model:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="kn"&gt;use&lt;/span&gt; &lt;span class="nc"&gt;App\Enums\PostStatus&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="cd"&gt;/**
 * The attributes that should be cast.
 *
 * @var array
 */&lt;/span&gt;
&lt;span class="k"&gt;protected&lt;/span&gt; &lt;span class="nv"&gt;$casts&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="s1"&gt;'status'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nc"&gt;PostStatus&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;class&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;];&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once you have defined the cast on your model, the specified attribute will be automatically cast to and from an &lt;code&gt;enum&lt;/code&gt; when you interact with the attribute:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$post&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;status&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="nc"&gt;PostStatus&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nc"&gt;Pending&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;

    &lt;span class="nv"&gt;$post&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;status&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;PostStatus&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nc"&gt;Published&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="nv"&gt;$post&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;save&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Brand-new Accessors &amp;amp; Mutators (Simplified)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Laravel 9.x&lt;/strong&gt; offers a new way to define Eloquent accessors and mutators. In previous releases of Laravel, the only way to define &lt;a href=""&gt;accessors and mutators&lt;/a&gt; was by defining prefixed methods on your model like so:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;getNameAttribute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$value&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nb"&gt;strtoupper&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$value&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;setNameAttribute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$value&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nv"&gt;$this&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;attributes&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'name'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$value&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;However, in &lt;strong&gt;Laravel 9.x&lt;/strong&gt; you may define an accessor and mutator using a single, &lt;strong&gt;non-prefixed&lt;/strong&gt; method by &lt;strong&gt;type-hinting&lt;/strong&gt; a return type of &lt;code&gt;Illuminate\Database\Eloquent\Casts\Attribute&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="kn"&gt;use&lt;/span&gt; &lt;span class="nc"&gt;Illuminate\Database\Eloquent\Casts\Attribute&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt; &lt;span class="kt"&gt;Attribute&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Attribute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="k"&gt;fn&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$value&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;strtoupper&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$value&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
        &lt;span class="n"&gt;set&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="k"&gt;fn&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$value&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;$value&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Laravel 9 Release Notes
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Laravel 9&lt;/strong&gt; comes with release notes, and the full list of &lt;strong&gt;features&lt;/strong&gt;, you can see them on &lt;a href="https://laravel.com/docs/9.x/releases#laravel-9"&gt;Laravel 9 release notes&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Upgrade To Laravel 9
&lt;/h1&gt;

&lt;p&gt;You have 2 possible ways to upgrade your &lt;strong&gt;application&lt;/strong&gt; to &lt;strong&gt;Laravel 9&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;First one is to do it manually, &lt;a href="https://laravel.com/docs/9.x/upgrade"&gt;Check The Upgrade Guide&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Use Automation tools such as &lt;a href="https://laravelshift.com/"&gt;Laravel Shift&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;The features above are just a few ones on  this new release, if you want to know more, you may refer to &lt;strong&gt;Laravel 9 release notes&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you are a visual learner, you may check &lt;a href="https://www.youtube.com/watch?v=GwunZ5sH2P8"&gt;Laravel 9 - Everything You Need to Know (In 45 Minutes)&lt;br&gt;
&lt;/a&gt; by Jeffery way on laracasts, or &lt;a href="https://www.youtube.com/watch?v=MnSzUX7kU-E"&gt;12 Minutes, What's New in Laravel 9&lt;br&gt;
&lt;/a&gt; by Mohamed Said.&lt;/p&gt;

&lt;p&gt;This all what I want to say today, Have a happy &lt;strong&gt;Upgrade&lt;/strong&gt; 🥳&lt;/p&gt;

</description>
      <category>laravel</category>
    </item>
    <item>
      <title>Scaffold Multiple Files in one command with laracommand package.</title>
      <dc:creator>Oussama</dc:creator>
      <pubDate>Tue, 08 Feb 2022 09:06:42 +0000</pubDate>
      <link>https://dev.to/sky_0xs/scaffold-multiple-files-in-one-command-with-laracommand-package-mgf</link>
      <guid>https://dev.to/sky_0xs/scaffold-multiple-files-in-one-command-with-laracommand-package-mgf</guid>
      <description>&lt;h1&gt;
  
  
  Introduction
&lt;/h1&gt;

&lt;p&gt;There are many CLI tools nowadays built for Laravel, and this is one of those.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;laracommand&lt;/code&gt; is a CLI tool to save you time, and gives you the power to scaffold all of your models, controllers, commands in one go.&lt;/p&gt;

&lt;p&gt;
    &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WAQvg8iI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/coderflexx/laracommand/main/docs/images/logo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WAQvg8iI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/coderflexx/laracommand/main/docs/images/logo.png" alt="laracommand Logo" width="273" height="145"&gt;&lt;/a&gt;
    &lt;br&gt;&lt;br&gt;
    &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1mtglS5B--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/coderflexx/laracommand/main/docs/images/example.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1mtglS5B--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/coderflexx/laracommand/main/docs/images/example.png" alt="laracommand Example" width="821" height="601"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;h1&gt;
  
  
  Prerequisite
&lt;/h1&gt;

&lt;p&gt;You need to know the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Need to know &lt;a href="https://php.net"&gt;PHP&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Basics on Laravel &amp;amp; the artisan command &lt;a href="https://laravel.com"&gt;Laravel&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Basics on composer [Composer][&lt;a href="https://getcomposer.org"&gt;https://getcomposer.org&lt;/a&gt;]&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Why this package?
&lt;/h1&gt;

&lt;p&gt;At the beginning of any project, we need to create many files (models, controllers, views, factories...) Thanks to Laravel artisan commands, to make this happens without any efforts counts but, imagine you want to create 10 models, you need to run the command &lt;code&gt;php artisan make:model&lt;/code&gt; 10 times right? &lt;br&gt;
With this tool, no need for that! All what you need to do is run the command and name as many as &lt;code&gt;models&lt;/code&gt; you want, and it will create them all for you.&lt;/p&gt;
&lt;h1&gt;
  
  
  Installation
&lt;/h1&gt;

&lt;p&gt;You can install the package via composer:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;composer require coderflexx/laracommand &lt;span class="nt"&gt;--dev&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;--dev&lt;/code&gt; option is to install it in development purposes.&lt;/p&gt;

&lt;h1&gt;
  
  
  Usage
&lt;/h1&gt;

&lt;p&gt;Use the commands like using &lt;code&gt;laravel&lt;/code&gt; make commands&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;make model command
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;php artisan laracommand:make-model FirstModel SecondModel
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can generate as many as you want of models, and you can add options like &lt;code&gt;make:model&lt;/code&gt; command&lt;/p&gt;

&lt;p&gt;Check out the &lt;a href="https://laravel.com/docs/8.x/eloquent#generating-model-classes"&gt;docs&lt;/a&gt; for more, just replace &lt;code&gt;make:model&lt;/code&gt; with &lt;code&gt;laracommand:make-model&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;If you want to create the model and controller for example, you need to do the following:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;php artisan laracommand:make-model FirstModel SecondModel ThirdModel &lt;span class="nt"&gt;--controller&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;if pass the flag &lt;code&gt;-c&lt;/code&gt; instead of &lt;code&gt;--controller&lt;/code&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Note
&lt;/h1&gt;

&lt;p&gt;This package is for development use only, you are free  to disable/remove it once you are done with.&lt;/p&gt;

&lt;h1&gt;
  
  
  Changelog
&lt;/h1&gt;

&lt;p&gt;You can follow the changes on this &lt;a href="https://github.com/coderflexx/laracommand"&gt;package&lt;/a&gt; by accessing the &lt;a href="https://github.com/coderflexx/laracommand/blob/main/CHANGELOG.md"&gt;changelog&lt;/a&gt; or the &lt;a href="https://github.com/coderflexx/laracommand/releases"&gt;releases&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Contributing
&lt;/h1&gt;

&lt;p&gt;If you want to contribute, feel free to read the &lt;a href="https://github.com/coderflexx/laracommand/blob/main/.github/CONTRIBUTING.md"&gt;CONTRIBUTING&lt;/a&gt; guidelines, and make your &lt;code&gt;PR&lt;/code&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;Today we s learned about &lt;a href="https://github.com/coderflexx/laracommand"&gt;Laracommand&lt;/a&gt; package, and how to use it. To make our development process easier and save us time.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>laravel</category>
      <category>packages</category>
    </item>
  </channel>
</rss>
