<?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>Forem: JcRodSolutions</title>
    <description>The latest articles on Forem by JcRodSolutions (@jcrodsolutions).</description>
    <link>https://forem.com/jcrodsolutions</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%2F1075675%2Fef5dbd4e-ba74-42b0-a0a1-25971fb7f448.png</url>
      <title>Forem: JcRodSolutions</title>
      <link>https://forem.com/jcrodsolutions</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/jcrodsolutions"/>
    <language>en</language>
    <item>
      <title>Upgrade to Laravel 10 from v9</title>
      <dc:creator>JcRodSolutions</dc:creator>
      <pubDate>Sat, 05 Aug 2023 04:13:34 +0000</pubDate>
      <link>https://forem.com/jcrodsolutions/upgrade-to-laravel-10-from-v9-3k2e</link>
      <guid>https://forem.com/jcrodsolutions/upgrade-to-laravel-10-from-v9-3k2e</guid>
      <description>&lt;p&gt;This may be a late post, but I'm still writing this as my wording may help some of you to understand it in a way others tried and failed.&lt;/p&gt;

&lt;p&gt;First of all, you are required to upgrade your PHP version to at least 8.0.x, in my case I have PHP 8.2 for this example. Remember PHP 8.3 is coming soon...&lt;/p&gt;

&lt;h2&gt;
  
  
  My current example
&lt;/h2&gt;

&lt;p&gt;Here I have just a few packages but what matters is how I make sure, or at least make a good guess, that every one of them will be compatible.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--zEZIheBf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7xm1hq7gqjo9uji9k7kn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zEZIheBf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7xm1hq7gqjo9uji9k7kn.png" alt="My composer.json" width="455" height="365"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  BEFORE YOU BEGIN
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Backup your code!!&lt;/strong&gt; &lt;br&gt;
If you have git for version control, create a separate branch. This way you have the option to start again in case you screw up. Also it will make a kind of checkpoint in case you want to practice over and over.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;git branch L10&lt;/code&gt; will create a new branch called L10&lt;br&gt;
&lt;code&gt;git checkout L10&lt;/code&gt; will change your current branch to the new one&lt;/p&gt;
&lt;h2&gt;
  
  
  Step 1
&lt;/h2&gt;

&lt;p&gt;After checking your current Laravel Framework with &lt;code&gt;php artisan --version&lt;/code&gt; or &lt;code&gt;php artisan about&lt;/code&gt;, open your composer.json with your favorite IDE/Editor.&lt;/p&gt;
&lt;h2&gt;
  
  
  Step 2
&lt;/h2&gt;

&lt;p&gt;This is a long one, but with each project you upgrade you will get better and faster at this.&lt;/p&gt;

&lt;p&gt;Check every package to see if the version rule defined in your composer version will work. Let me explain using the following image:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Oekzk6fk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sqivz24f4oj1v33m4hgj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Oekzk6fk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sqivz24f4oj1v33m4hgj.png" alt="Packagist Semver Checker" width="800" height="229"&gt;&lt;/a&gt;&lt;br&gt;
I present to you &lt;a href="https://semver.madewithlove.com/"&gt;Packagist Semver Checker&lt;/a&gt;. With this marvelous tool you can check the versions covered by your rule. In this example we can see that doctrine/dbal will upgrade fine when we run the final step which is &lt;code&gt;composer update&lt;/code&gt;.&lt;/p&gt;
&lt;h2&gt;
  
  
  Step 3
&lt;/h2&gt;

&lt;p&gt;Rinse and repeat.&lt;br&gt;
At the end of this cycle I get the following in the required section. The most important version upgrades are PHP and laravel/framework.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--yZutNT-N--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xgvpo2g7tl7b8799fv1b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--yZutNT-N--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xgvpo2g7tl7b8799fv1b.png" alt="Image description" width="347" height="179"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Step 4
&lt;/h2&gt;

&lt;p&gt;In the console, excecute the command&lt;br&gt;
&lt;code&gt;composer update&lt;/code&gt;&lt;br&gt;
.. and you are ready to go!&lt;/p&gt;
&lt;h2&gt;
  
  
  uh-oh!
&lt;/h2&gt;

&lt;p&gt;Not so fast my friend. You may encounter different issues telling you that it's not ready to upgrade ... yet&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6pNzYjZ_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p46nhm1082i1fcf94yme.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6pNzYjZ_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p46nhm1082i1fcf94yme.png" alt="Image description" width="770" height="108"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But don't worry, it isn't usually that hard. You just have to read carefully and you'll get your issues fixed.&lt;/p&gt;

&lt;p&gt;In my case, I have 2 main issues and this is how to fix them.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--FeLx33cz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8i5ibj7llfwh25y21dzg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--FeLx33cz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8i5ibj7llfwh25y21dzg.png" alt="composer update errors" width="800" height="109"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The first one I would like to mention is the package spatie/laravel-ignition which I haven't set to ^2.0.&lt;br&gt;
Remember &lt;a href="https://semver.madewithlove.com/?package=spatie%2Flaravel-ignition&amp;amp;constraint=^2.0&amp;amp;stability=stable"&gt;Semver Checker&lt;/a&gt;? Well, it will help you determine that your rule should say ^2.0 for spatie/laravel-ignition by telling you that there are higher major versions than 1.x so my composer.json looks like this in the "require-dev" section:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kf5SVuDD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g1hvp1dw2hzbcs9fmc84.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kf5SVuDD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g1hvp1dw2hzbcs9fmc84.png" alt="composer.json require-dev" width="398" height="196"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  I Promise, we are almost there
&lt;/h2&gt;

&lt;p&gt;For my project, this was all it take to complete upgrade requirements. But there are sometimes that Illuminate/support keeps telling you that it's not supported for the actual dependencies.&lt;br&gt;
To fix this issue, first thing I try is a little bit harsh but quite effective:&lt;br&gt;
&lt;code&gt;rm -rf vendor composer.lock&lt;/code&gt; which eliminates both, vendor folder and composer.lock file. Then you can try &lt;code&gt;composer update&lt;/code&gt; again and it will most likely succeed.&lt;/p&gt;

&lt;p&gt;For you who don't know what is composer.lock for, I'll try to make it simple (it has a lot more detail):  This file has the &lt;strong&gt;actual&lt;/strong&gt; versions of all the packages defined in composer.json file plus all dependencies. When you delete composer.lock and then you try &lt;code&gt;composer install&lt;/code&gt; or &lt;code&gt;composer update&lt;/code&gt; it recalculates all dependencies and create a new composer.lock file while installing all vendor files. &lt;/p&gt;
&lt;h2&gt;
  
  
  Finally, we are done!
&lt;/h2&gt;

&lt;p&gt;Check again your version&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WjpZoZUC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k8sjcri20zzg3uhqldlc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WjpZoZUC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k8sjcri20zzg3uhqldlc.png" alt="artisan --version" width="247" height="46"&gt;&lt;/a&gt;&lt;br&gt;
** pa is my shortcut for 'php artisan'&lt;/p&gt;

&lt;p&gt;Now that your project is successfully upgraded to Laravel 10, serve it and have a look so you can make sure everything works before committing and merging your changes to your dev, qa and/or main branches.&lt;br&gt;
You should only have these two files waiting for a commit.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--m0lK1rWD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dkcdlre1frfvjo0bxmcb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--m0lK1rWD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dkcdlre1frfvjo0bxmcb.png" alt="git status" width="659" height="160"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As I said, after your revision you are now ready to commit your changes.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git add .
git commit -m "Project upgraded to Laravel 10"
git checkout dev
git merge L10
git push
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Rollback
&lt;/h2&gt;

&lt;p&gt;If anything goes wrong, just change branch to your last working branch, remove your vendor folder and run composer install to reinstall your original files as defined in composer.lock file.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;git checkout dev&lt;/code&gt;  You may need to --force&lt;br&gt;
&lt;code&gt;git branch -d L10&lt;/code&gt; to delete the failed attempt&lt;/p&gt;

&lt;p&gt;and... you are ready to try again without messing up with your currently working code.&lt;/p&gt;

&lt;h2&gt;
  
  
  See you later
&lt;/h2&gt;

&lt;p&gt;I hope this tutorial help you to understand what the process of upgrading Laravel to v10 from v9. &lt;/p&gt;

&lt;p&gt;Soon I'll be posting an article on how to upgrade from 8 to 9. &lt;/p&gt;

&lt;p&gt;Feel free to comment with your questions.&lt;/p&gt;

</description>
      <category>laravel</category>
      <category>upgrade</category>
      <category>tutorial</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>My Vscode Setup</title>
      <dc:creator>JcRodSolutions</dc:creator>
      <pubDate>Fri, 04 Aug 2023 21:03:14 +0000</pubDate>
      <link>https://forem.com/jcrodsolutions/my-vscode-setup-3h9m</link>
      <guid>https://forem.com/jcrodsolutions/my-vscode-setup-3h9m</guid>
      <description>&lt;h2&gt;
  
  
  Short and brief
&lt;/h2&gt;

&lt;p&gt;You can get up an running in 3 easy steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://code.visualstudio.com/download"&gt;Download&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Install&lt;/li&gt;
&lt;li&gt;Run&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Let's make it clear. I just prefer Netbeans but there are some times I have to share work with colleagues that use Vscode. In case you missed it, here's my article &lt;a href="https://dev.to/jcrodsolutions/my-netbeans-setup-3711"&gt;My Netbeans Setup&lt;/a&gt; on how do I make my Netbeans IDE work for me.&lt;/p&gt;

&lt;p&gt;Quick recap: I once read that if you want to be really productive, know your IDE, make it yours, let it be a part of you. You can achieve this also with Vscode. Read me in. &lt;/p&gt;

&lt;h2&gt;
  
  
  Key adjustments
&lt;/h2&gt;

&lt;p&gt;I order to make the most of your IDE you have to make some adjustments in this areas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Extensions&lt;/li&gt;
&lt;li&gt;Key Bindings&lt;/li&gt;
&lt;li&gt;Code Snippets&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Extensions
&lt;/h2&gt;

&lt;p&gt;Here's a list of a few extensions I use. You can follow my lead or look for another extension that lets you accomplish the same. There may or may not be the best available but are the ones that make me feel comfortable.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Laravel Blade Formatter&lt;/strong&gt; &lt;a href="https://marketplace.visualstudio.com/items?itemName=shufo.vscode-blade-formatter"&gt;shufo.vscode-blade-formatter&lt;/a&gt; "An opinionated Blade file formatter".
There's no perfect blade formatter, but this one does the job&lt;/li&gt;
&lt;li&gt;Material Icon Theme &lt;a href="https://marketplace.visualstudio.com/items?itemName=PKief.material-icon-theme"&gt;PKief.material-icon-theme&lt;/a&gt; "Material Design Icons".
Default icons may be difficult to tell apart from each other.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PHP IntelliSense&lt;/strong&gt; &lt;a href="https://marketplace.visualstudio.com/items?itemName=zobo.php-intellisense"&gt;zobo.php-intellisense&lt;/a&gt; "Advanced PHP IntelliSense".
Don't you feel great when you have a friend that completes your phrases?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;phpfmt - PHP formatter&lt;/strong&gt; &lt;a href="https://marketplace.visualstudio.com/items?itemName=kokororin.vscode-phpfmt"&gt;kokororin.vscode-phpfmt&lt;/a&gt; "The missing phpfmt extension".
Nice to have a formatter for php code&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Semicolon Insertion Shortcut&lt;/strong&gt; &lt;a href="https://marketplace.visualstudio.com/items?itemName=chrisvltn.vs-code-semicolon-insertion"&gt;chrisvltn.vs-code-semicolon-insertion&lt;/a&gt; "Semicolon insertion shortcut".
Coming from using Netbeans, this was a &lt;strong&gt;must have&lt;/strong&gt; extension.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Live Share&lt;/strong&gt; &lt;a href="https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare"&gt;ms-vsliveshare.vsliveshare&lt;/a&gt; "Real-time collaborative development".
This one is really great for helping others and for collaboration.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Key Bindings
&lt;/h2&gt;

&lt;p&gt;You have to forget about your mouse! You ARE faster when you type! Keystrokes are faster than mouse point and click!&lt;br&gt;
You have to make your fingers memorize this in order to become a better coder. Why? Because your brain will have more time to focus in problem solving rather than precision clicking a specific icon to perform any action like save your files for example.&lt;br&gt;
My preferred shorcuts get the following done:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open the terminal&lt;/li&gt;
&lt;li&gt;Duplicate lines&lt;/li&gt;
&lt;li&gt;Move lines arround&lt;/li&gt;
&lt;li&gt;Go to Specific line&lt;/li&gt;
&lt;li&gt;Terminate the line with a ;&lt;/li&gt;
&lt;li&gt;Newline wherever you are positioned in a line
...and more&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Some of the extensions mentioned before need to be tweaked a little bit, for example ctrl+; is not available by default for using with the semicolon insert extension so I simply eliminated those key combos that are not useful (to me) by any means. &lt;/p&gt;

&lt;p&gt;Here's a link to download my settings. &lt;a href="https://jcrodsolutions.com/downloads/vscode/keybindings.json"&gt;Keybindings&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Code Snippets
&lt;/h2&gt;

&lt;p&gt;This makes repetitive code blocks easier to deploy. You just have to remember "your" shortcuts. &lt;br&gt;
I can suggest a couple:&lt;/p&gt;

&lt;p&gt;cont&lt;br&gt;
This will create a container, inside a row and inside a col.&lt;/p&gt;

&lt;p&gt;row&lt;br&gt;
This will create a row and inside a col&lt;/p&gt;

&lt;p&gt;ig5&lt;br&gt;
This will create an input group as the one &lt;a href="https://getbootstrap.com/docs/5.3/forms/floating-labels/#input-groups"&gt;input group&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;To use any of your templates you just type your shortcut, wait a little moment and then select yours from the popup list.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://jcrodsolutions.com/downloads/vscode/blade.json"&gt;Blade snippets&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://jcrodsolutions.com/downloads/vscode/php.json"&gt;PHP Snippets&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Try them, use them, memorize then, be them. They're yours.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>programming</category>
      <category>productivity</category>
      <category>php</category>
    </item>
    <item>
      <title>My Netbeans Setup</title>
      <dc:creator>JcRodSolutions</dc:creator>
      <pubDate>Fri, 26 May 2023 01:21:57 +0000</pubDate>
      <link>https://forem.com/jcrodsolutions/my-netbeans-setup-3711</link>
      <guid>https://forem.com/jcrodsolutions/my-netbeans-setup-3711</guid>
      <description>&lt;h2&gt;
  
  
  Short and brief
&lt;/h2&gt;

&lt;p&gt;You can get up an running in 3 easy steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://netbeans.apache.org/download/" rel="noopener noreferrer"&gt;Download&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Install&lt;/li&gt;
&lt;li&gt;Run&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;But to make your productivity go up you need to adjust your settings. After you get it done, you can export this settings and share them with your colleagues or have it as a backup in the case you need to either reinstall or re-apply them to a known working state.&lt;/p&gt;

&lt;h2&gt;
  
  
  My favorite customizations
&lt;/h2&gt;

&lt;p&gt;I once read that if you want to be really productive, know your IDE, make it yours, let it be a part of you. And that's what I've done with NetBeans. Today I want to share these tips with you so you can create your best.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Slow behavior in Laravel Projects&lt;/strong&gt;&lt;br&gt;
NetBeans was not built with Laravel on top of their mind. Out of the box NetBeans behaves slow according to my standards, but I have found a solution for it. First, let me tell you what slows down NetBeans: vendor folder. It tries to analyze every single piece of code inside it and it's a lot.&lt;br&gt;
How to prevent this from happening?&lt;br&gt;
1- Per project&lt;br&gt;
2- Globally (my preferred option)&lt;/p&gt;

&lt;p&gt;Per project&lt;br&gt;
Go to your project and right click it and select properties. Inside JavaScript/Ignored folders you have to add the vendor folder an I recommend also including storage folder.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6jhbyoxtqkb22pst5pr2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6jhbyoxtqkb22pst5pr2.png" alt="Folders Ignored per project"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Globally&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go to Tools &amp;gt; Options&lt;/li&gt;
&lt;li&gt;Select Miscellaneous&lt;/li&gt;
&lt;li&gt;Select "files" tab
In the ignored files pattern include vendor and node_modules as folders. My ignored string looks like this:
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;^(CVS|SCCS|vssver.?\.scc|#.*#|%.*%|_svn|vendor|node_modules)$|~$|^\.(git|hg|svn|cache|gradle|DS_Store)$|^Thumbs.db$
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Funyo0ssdqr24ty408y9m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Funyo0ssdqr24ty408y9m.png" alt="Files ignored globally"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Editor&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go to Tools &amp;gt; Options&lt;/li&gt;
&lt;li&gt;Select Editor&lt;/li&gt;
&lt;li&gt;Select Autosave&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Check both options to save every 5 minutes (or your preferred amount of time) and every time you change focus to other window or tab.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbi76e4mkxzcqewf1uelc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbi76e4mkxzcqewf1uelc.png" alt="Editor Options - Autosave"&gt;&lt;/a&gt;&lt;br&gt;
This is very useful because your mind does not need to waste processing time getting your files saved. No Ctrl+S or click on the save icon means your brain doesn't need to shift gears so you can stay focused on building your solution.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Code Templates&lt;/strong&gt;&lt;br&gt;
This is no NetBeans exclusive. What do I mean? Use it. Regardless of the IDE of your choice. Learn on how to use them and use them. They can save you a lot of time by preventing you from typing every time or googling every you need to implement a block of code you use frequently.&lt;/p&gt;

&lt;p&gt;To create your own or create new ones based on the examples I'm going to post below: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go to Tools &amp;gt; options &amp;gt; Code templates&lt;/li&gt;
&lt;li&gt;Select the language and create new ones pressing on "New"&lt;/li&gt;
&lt;li&gt;Type an abbreviation&lt;/li&gt;
&lt;li&gt;Type your code&lt;/li&gt;
&lt;li&gt;Embrace them! Use your templates! Save time! Show yourself amazing while typing your code!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here are some examples under PHP:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://laravel.com/docs/10.x/eloquent-mutators#accessors-and-mutators" rel="noopener noreferrer"&gt;Accesors&lt;/a&gt;&lt;br&gt;
I use the abbreviation "acc"&lt;br&gt;
Usage: Inside Models,&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;//In case you don't remember the complete class name
//use Illuminate\Database\Eloquent\Casts\Attribute;

protected function ${funcion}():Attribute{
    return Attribute::make(
        get:fn(string $value)=&amp;gt;${whatever_I_need},
    );
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Anonymous function&lt;br&gt;
Abbreviation: afun&lt;br&gt;
Usage: every time I need to create an anonymous function&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function() {
    ${cursor}
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Array item =&amp;gt; PHP variable&lt;br&gt;
Abbreviation: key&lt;br&gt;
Usage: To save keystrokes while assigning key-pair values in arrays where the value is the same name as the variable name.&lt;br&gt;
Example:   'variableName' =&amp;gt; $variableName,&lt;br&gt;
$array = [&lt;br&gt;
    'variableName' =&amp;gt; $variableName,&lt;br&gt;
];&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;'${variable}${cursor}' =&amp;gt; $$${variable},
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Array item =&amp;gt; PHP variable within class&lt;br&gt;
Abbreviation: keyt&lt;br&gt;
Usage: Same as previous, but within class so it has the $this-&amp;gt;  as prefix.&lt;br&gt;
Example:&lt;br&gt;
$array = [&lt;br&gt;
    'variableName' =&amp;gt; $this-&amp;gt;variableName,&lt;br&gt;
];&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;'${variable}${cursor}' =&amp;gt; $this-&amp;gt;${variable},
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Where Code templates shine the most for me is in blade templates. &lt;strong&gt;Remember from my last post I use Bootstrap&lt;/strong&gt; The Idea remains the same when using Tailwind CSS or your favorite CSS library.&lt;/p&gt;

&lt;p&gt;This code templates need to be created under the HTML language. They work great in blade templates and more generally speaking, outside the php start tag.&lt;/p&gt;

&lt;p&gt;Input Group - Bootstrap 5&lt;br&gt;
Abbreviation: ig5&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;div class="input-group mb-3"&amp;gt;
    &amp;lt;span class="input-group-text icono fa-search"&amp;gt;&amp;lt;/span&amp;gt;
    &amp;lt;div class="form-floating flex-grow-1"&amp;gt;
        &amp;lt;input type="text" class="form-control" name="${name}"${cursor} value="{{ old("${name}") ?? $$${name} ?? '' }}"&amp;gt;
        &amp;lt;label&amp;gt;${label}&amp;lt;/label&amp;gt;
    &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Container&lt;br&gt;
Abbreviation: cont&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;div class="container"&amp;gt;
    &amp;lt;div class="row"&amp;gt;
        &amp;lt;div class="col"&amp;gt;
            ${cursor}
        &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Bootstrap 5 Row&lt;br&gt;
Abbreviation: row&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;div class="row"&amp;gt;
    &amp;lt;div class="col"&amp;gt;
        ${cursor}
    &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Bootstrap 5 Column&lt;br&gt;
Abbreviation: col&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;div class="col"&amp;gt;
    ${cursor}
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Bootstrap 5 Card&lt;br&gt;
(that .icono class is a Custom &lt;em&gt;me&lt;/em&gt; thing)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;div class="card"&amp;gt;
    &amp;lt;h5 class="card-header"&amp;gt;${cursor}&amp;lt;/h5&amp;gt;
    &amp;lt;div class="card-body"&amp;gt;
        ${cursor}
    &amp;lt;/div&amp;gt;
    &amp;lt;div class="card-footer"&amp;gt;
        &amp;lt;a href="#" class="btn btn-secondary icono fa-ban"&amp;gt;Cancelar&amp;lt;/a&amp;gt;
        &amp;lt;button class="btn btn-primary icono fa-save"&amp;gt;Guardar&amp;lt;/button&amp;gt;
    &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Bootstrap 5 formatted table&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;table class="table table-hover table-striped"&amp;gt;
    &amp;lt;caption&amp;gt;&amp;lt;h5&amp;gt;&amp;lt;/h5&amp;gt;&amp;lt;/caption&amp;gt;
    &amp;lt;thead&amp;gt;
    &amp;lt;tr&amp;gt;
        &amp;lt;th&amp;gt;${Header}&amp;lt;/th&amp;gt;
        &amp;lt;th&amp;gt;${Header2}&amp;lt;/th&amp;gt;
    &amp;lt;/tr&amp;gt;
    &amp;lt;/thead&amp;gt;

    &amp;lt;tbody&amp;gt;
                &amp;lt;tr&amp;gt;
                    &amp;lt;td&amp;gt;Cell1&amp;lt;/td&amp;gt;
                    &amp;lt;td&amp;gt;Cell2&amp;lt;/td&amp;gt;
                &amp;lt;/tr&amp;gt;
                @forelse($datos as $k=&amp;gt;$v)
                &amp;lt;tr&amp;gt;
                    &amp;lt;td&amp;gt;{{ $v-&amp;gt;id }}&amp;lt;/td&amp;gt;
                    &amp;lt;td&amp;gt;{{ $v-&amp;gt;campo }}&amp;lt;/td&amp;gt;
                &amp;lt;/tr&amp;gt;
                @empty
                &amp;lt;tr&amp;gt;
                    &amp;lt;td colspan="20"&amp;gt;&amp;lt;/td&amp;gt;
                &amp;lt;/tr&amp;gt;
                @endforelse
            &amp;lt;/tbody&amp;gt;
&amp;lt;/table&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I may/will edit this post in the future to include a link to my &lt;a href="https://github.com/jcrodsolutions/nbc" rel="noopener noreferrer"&gt;Github&lt;/a&gt; repo where you can download my code templates. Currently there's not much to see there... yet.&lt;/p&gt;

&lt;p&gt;In case you are wondering, you can achieve the same in VSCode but I just prefer Netbeans. &lt;br&gt;
Have a quick look:&lt;br&gt;
Under Blade user snippets you can define your templates. This is an example of the same ig5 template I already showed to you.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    "input group bs5": {
        "prefix": "ig5",
        "body": [
            "&amp;lt;div class=\"input-group mb-3\"&amp;gt;",
            "&amp;lt;span class=\"input-group-text icono fa-search\"&amp;gt;&amp;lt;/span&amp;gt;",
            "&amp;lt;div class=\"form-floating flex-grow-1\"&amp;gt;",
            "&amp;lt;input type=\"text\" class=\"form-control\" name=\"$name\" value=\"{{ old(\"$name\") ?? $$name ?? '' }} \"&amp;gt;",
            "&amp;lt;label&amp;gt;${label}&amp;lt;/label&amp;gt;",
            "&amp;lt;/div&amp;gt;",
            "&amp;lt;/div&amp;gt;",
        ]
    },
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;*&lt;em&gt;Remember: *&lt;/em&gt; make it yours! You are the artisan and your IDE is your tool. Master it! Laravel is just a technique.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>programming</category>
      <category>productivity</category>
      <category>php</category>
    </item>
    <item>
      <title>What I should begin with?</title>
      <dc:creator>JcRodSolutions</dc:creator>
      <pubDate>Wed, 03 May 2023 19:05:43 +0000</pubDate>
      <link>https://forem.com/jcrodsolutions/what-i-should-begin-with-3igj</link>
      <guid>https://forem.com/jcrodsolutions/what-i-should-begin-with-3igj</guid>
      <description>&lt;h2&gt;
  
  
  Where to start?
&lt;/h2&gt;

&lt;p&gt;That's a question many have already answered and yet many others like you (maybe) are still asking yourselves. Maybe your question is different, like "what if I have started with a different set of tools?" or "what if I have to start from scratch in 2023?". I will get you through the set of tools I use and how using them improves my productivity.&lt;/p&gt;

&lt;p&gt;First of all, I will focus on PHP project development, using Laravel Framework. Also I will assume you are using Widnows and that you are kind of a beginner and in a way or another you don't have a clear idea on what your starter kit should look like. Please stay with me until the end, I'll have a reasoning for each decision taken.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Development IDE: Apache Netbeans&lt;/li&gt;
&lt;li&gt;Terminal: Windows terminal, using Cygwin Bash&lt;/li&gt;
&lt;li&gt;Browser: Any chromium based browser&lt;/li&gt;
&lt;li&gt;Git: Cygwin git package&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Optional features/tools:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Virtualbox&lt;/li&gt;
&lt;li&gt;Vagrant / Homestead&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can use any of this tools or at least use the same reasoning method I will try to explain to make your own decision. Many of the features I will present are probably present in other similar tools.&lt;/p&gt;

&lt;h2&gt;
  
  
  Development IDE
&lt;/h2&gt;

&lt;p&gt;It's true you can use any text editor you prefer but my choice to use Netbeans for PHP development is based on how the tweaks I implemented work for me.&lt;br&gt;
You can download it from &lt;a href="https://netbeans.apache.org/download/"&gt;apache.org downloads&lt;/a&gt; and nowadays it has a 3 month cycle between updates. &lt;a href="https://code.visualstudio.com/"&gt;VsCode&lt;/a&gt; is also very popular and has a lot of features and extensions to meet your needs, I just prefer Netbeans.&lt;br&gt;
The features I like are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Code templates. You can configure templates for each document type (html, php, javascript, etc). The respond instantly to your keystrokes so if you are fast typing you will like this one.&lt;/li&gt;
&lt;li&gt;Customization. There is not a lot you can customize visually, but at least there is a good dark theme that comes with the default install. Also, there are not a lot of plugins available.&lt;/li&gt;
&lt;li&gt;Remote connections. You can configure remote repositories which can be sync'd via SFTP (ssh) or regular FTP. There is a remote hosts manager and authentication can be done using user/password or key-pair authentication.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Features available I don't use or don't like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Git integration&lt;/li&gt;
&lt;li&gt;Composer integration&lt;/li&gt;
&lt;li&gt;Debug and profiling&lt;/li&gt;
&lt;li&gt;Class automatic import is mostly a hit/miss&lt;/li&gt;
&lt;li&gt;No native support for blade templates syntax or proper formatting&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let me be clear: all IDE's Ive used have implemented in one way or another all or almost all of the features I like, I just prefer the way they work in Netbeans. Please do not enter a debate with anyone on which IDE is better. Dedicate some time on each of the top recommendations and try to implement their productivity boost features and do not settle until you master these features. Those are the ones that will let you deliver your best.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cygwin Terminal
&lt;/h2&gt;

&lt;p&gt;There are many terminals you can use like Windows Command Prompt or PowerShell, or maybe bash types like Git-Bash implementation. Over every one of these, I prefer Cygwin's bash implementation. I also made it possible to make it as the default terminal in Windows. It's easier to do this in Win11, but can be done in Win10 too.&lt;br&gt;
You can download the Cygwin installer from &lt;a href="https://www.cygwin.com/"&gt;here&lt;/a&gt;. &lt;br&gt;
List of packages I install with it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;OpenSSH&lt;/li&gt;
&lt;li&gt;Git&lt;/li&gt;
&lt;li&gt;Curl&lt;/li&gt;
&lt;li&gt;Make&lt;/li&gt;
&lt;li&gt;(optional) wget&lt;/li&gt;
&lt;li&gt;(optional) Vim / Nano&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Again, this a matter of taste and preference. Other options as I mentioned are WSL, PowerShell and Git Bash. Be sure to try them if you have time and if you don't you can go straight to my recommendation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Virtualbox / Vagrant / Homestead
&lt;/h2&gt;

&lt;p&gt;Homestead, as stated in the &lt;a href="https://laravel.com/docs/10.x/homestead"&gt;Laravel Docs&lt;/a&gt;, is "an official, pre-packaged Vagrant box that provides ..."  TLDR: everything you need to run a Laravel Application in your local pc as if it where a Linux Ubuntu based server.&lt;br&gt;
The Homestead image is implemented in a VirtualBox vm using Vagrant as its vm manager.&lt;/p&gt;

&lt;p&gt;I recommend that before going to production, try to run the application locally, but using Homestead. It will mimic a Linux environment and sometimes you will be able to catch some errors that will not show up using your local Windows machine.&lt;/p&gt;

&lt;p&gt;That's it. You are ready to begin with your development. Please stay tuned as I will be posting tips and tricks that make me more productive using this tools.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Follow-ups&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://dev.to/jcrodsolutions/my-netbeans-setup-3711"&gt;My Netbeans Setup&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>programming</category>
      <category>setup</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
