Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

tpatchg's avatar

Starting out on the right foot, what would you use to get started?

Hello all, I am new to laracasts, watched the php for beginners and got hooked on the style and presentation, so became a member. I have some... bad practices.. that I need to overcome, as I have dabbled in website creation ~20 years, and mostly stopped when joomla/wix/etc came around. I am diving back in because I want to create a site for a non profit camp. Those won't cut it with the multi function of a storefront, registration, lodging, etc all tied in. With this goal, I see why using a framework is going to help me get "current" faster than hand coding everything. I am more comfortable with php as my history with it than js, so laravel makes the most sense, and laracasts seems the best hub of info (thanks for this btw!)

So some of the bad practice in this day: My first step is download dreamweaver, get a vm with apache/php/mysql installed and then sftp with ssh. Editing the code directly on the server, get the site up with a simple index.php and go from there. On the server I'd have a cron to do myql backups and the files. I have leeriness of dependancies out of my control. I always grab the jquery from cdn and host it locally for instance. I worry about depending on things others update, or host, and it being updated and breaking, or they stop hosting and it doesn't load. All this composer autoload vendors stuff is kind of.. worrying.

So for actually starting, what programs to use, where to dev.. I was looking on reddit and discord, vscode is the way to go (or php storm I see here). You develop locally, not remotely. Github is where to store your code (how your server gets it is still a mystery to me). There's laravel specific apps, herd/valet/sail, there's docker/vagrant dev containers, there's vscode server.. ugh.

So in light of all this.. what should I set up to start developing?

I would use the following devices:

  1. m2 mini with a doublewide monitor at work. This is by far what I spend the most time in front of.
  2. A 13" macbook. I take this everywhere I need access to work.
  3. A 15" chromebook. It's at home for anything personal.

I have a proxmox cluster, and a vm cluster for a remote dev machine if that's a better option. I can host the php/etc remotely instead of locally.

Thanks for any help!

0 likes
2 replies
LaryAI's avatar
Level 58

Hello and welcome to the world of modern web development! It's great to hear that you're ready to dive back in and that you're considering Laravel for your project. Laravel is indeed a powerful and developer-friendly framework that can help you build robust applications efficiently.

Here's a step-by-step guide to setting up a modern development environment for a Laravel project:

  1. Development Environment:

    • Since you're comfortable with PHP, Laravel Valet (for macOS) or Laravel Homestead (a Vagrant box) are excellent choices for a local development environment. They are tailored for Laravel and come with all the necessary services like Nginx, PHP, and MySQL.
    • If you prefer Docker, Laravel Sail is a lightweight command-line interface for interacting with Laravel's default Docker development environment. It's great for getting started without much Docker experience.
  2. Code Editor:

    • Visual Studio Code (VSCode) is a popular, free, and powerful editor with a vast ecosystem of extensions. It's suitable for both PHP and JavaScript development.
    • PHPStorm is a paid alternative that is specifically tailored for PHP and offers deep integration with Laravel.
  3. Version Control:

    • Git is the standard for version control. You can use GitHub, GitLab, or Bitbucket to host your repositories. These platforms offer additional features like issue tracking, CI/CD pipelines, and more.
    • Learn the basics of Git for version control and how to push/pull your code to/from your repository.
  4. Local Development:

    • Develop locally on your machine. This allows you to use your favorite tools and ensures that your development environment is fast and responsive.
    • Use Git to commit and push your changes to your remote repository.
  5. Deployment:

    • When you're ready to deploy, you can set up a CI/CD pipeline using GitHub Actions, GitLab CI/CD, or other services to automate the deployment of your code to your server.
    • Alternatively, you can deploy manually by pulling the latest changes from your Git repository on your server and running any necessary build steps.
  6. Dependencies:

    • Composer is the PHP dependency manager and is essential for modern PHP development. It handles all your PHP package needs.
    • NPM or Yarn can be used for managing JavaScript packages if your application requires it.
  7. Database Backups:

    • You can still use cron jobs on your server to handle database backups. Laravel also provides a task scheduling system to define cron-based tasks within your application.
  8. Learning Resources:

    • Continue using Laracasts for in-depth tutorials and best practices.
    • The Laravel documentation is also an excellent resource for understanding how to use the framework.

Here's a simple checklist to get started:

  • Install PHP, Composer, and MySQL on your local machine (or use Valet/Homestead/Sail).
  • Install Git and create a GitHub account.
  • Install Visual Studio Code or PHPStorm.
  • Create a new Laravel project using Composer.
  • Familiarize yourself with the Laravel directory structure and its components.
  • Start building your application locally.
  • Commit your changes to Git and push them to your GitHub repository.
  • Set up a deployment process to your server.

Remember, the tools you choose should fit your workflow and make you productive. Don't hesitate to experiment with different setups until you find what works best for you. Happy coding!

Please or to participate in this conversation.