<?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: Niclas van Eyk</title>
    <description>The latest articles on DEV Community by Niclas van Eyk (@niclasvaneyk).</description>
    <link>https://dev.to/niclasvaneyk</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F188743%2Fe4508150-4cc2-462c-ae9b-84176bb6768b.jpeg</url>
      <title>DEV Community: Niclas van Eyk</title>
      <link>https://dev.to/niclasvaneyk</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/niclasvaneyk"/>
    <language>en</language>
    <item>
      <title>🚀 Initializer for Laravel – Jumpstart your next project</title>
      <dc:creator>Niclas van Eyk</dc:creator>
      <pubDate>Thu, 27 Jan 2022 17:28:16 +0000</pubDate>
      <link>https://dev.to/niclasvaneyk/initializer-for-laravel-jumpstart-your-next-project-3pgc</link>
      <guid>https://dev.to/niclasvaneyk/initializer-for-laravel-jumpstart-your-next-project-3pgc</guid>
      <description>&lt;p&gt;Creating a new Laravel application can be as easy as running:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-s&lt;/span&gt; https://laravel.build/my-new-laravel-application | bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This does a lot of the heavy lifting for you, but chances are that you have your &lt;em&gt;own&lt;/em&gt; preferences and standards. Maybe you always work with PostgreSQL instead of the default MySQL or you would like to utilize one of the application starter kits, rather than rolling your own authentication implementation. Then you need to repeat all of these steps every time you start a new project: installing composer packages, adjusting &lt;code&gt;.env&lt;/code&gt; files and running a bunch of &lt;code&gt;php artisan my-package:install&lt;/code&gt; commands.&lt;/p&gt;

&lt;p&gt;To automate all of this setup, I created &lt;a href="https://laravel.initializer.dev"&gt;laravel.initializer.dev&lt;/a&gt;. It presents you with all of the first-party and related packages and their options, so you can pick and choose your favorite Laravel components. Once you're done, just hit the red generate button and a ZIP file will be generated containing your project. If you want to re-use the configuration to generate projects in the future, just click the "Share" button, to generate a link to your configuration.&lt;/p&gt;

&lt;p&gt;Now all thats left is unpacking the archive, &lt;code&gt;cd&lt;/code&gt;ing into the project directory, and finally running&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;./initialize
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;in your terminal. Have a fresh cup of coffee/tea, while &lt;code&gt;initialize&lt;/code&gt; scaffolds out your project, installs all the necessary components, builds your frontend bundles and migrates your database. &lt;/p&gt;

&lt;p&gt;Did you chose Postgres as your database? The &lt;code&gt;config/database.php&lt;/code&gt;, &lt;code&gt;.env.template&lt;/code&gt; and &lt;code&gt;.env&lt;/code&gt; files are adjusted accordingly. &lt;/p&gt;

&lt;p&gt;Did you chose Horizon to monitor your Redis queues and Mailhog to test your emails locally? There already is a helpful table inside the generated &lt;code&gt;readme.md&lt;/code&gt;, which lists the paths to all these local development tools for your setup.&lt;/p&gt;

&lt;p&gt;Did you include Pest for your tests and Breeze or Jetstream as a starter kit? Of course all the necessary options were passed during the installation, so all your tests already use Pest.&lt;/p&gt;

&lt;p&gt;If you are interested to take a look behind the scenes, the projects code is &lt;a href="https://github.com/NiclasvanEyk/initializer-for-laravel"&gt;freely available on GitHub&lt;/a&gt;. Feel free to create an issue if you can think of any improvements! (though keep in mind that the project is scoped to first-party Laravel packages atm. Otherwise all of the Spatie packages would take up the whole page)&lt;/p&gt;

</description>
      <category>laravel</category>
      <category>webdev</category>
      <category>php</category>
      <category>docker</category>
    </item>
  </channel>
</rss>
