Create and configure a Laravel project with PhpStorm

laravel, laravel-4, php, phpstorm

Solution

You shouldn't need to put the `_ide_helper.php` file anywhere manually, it is automatically generated by the Artisan command. For each new project, include the IDE helper in that project's `composer.json` file:

"require-dev": {
    "barryvdh/laravel-ide-helper": "1.*"
}

Add the service provider to the providers array in the `config.php` file of your Laravel project:

'Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider'

Then use Artisan to generate the `_ide_helper.php` file for the project (run this command from the terminal in the root of your Laravel project directory):

php artisan ide-helper:generate

This is all paraphrased from the instructions on the IDE Helper GitHub page. I would recommend following those instructions to also set up your composer.json file to auto-generate a new `_ide_helper.php` whenever composer updates.

Yes. For each individual Laravel project, you'll need to update your sites mapping in the YAML file. For my projects, I use this scheme (note that you are mapping to the location relative to your Vagrant box):

sites:
    - map: local.project.example.com
      to: /home/vagrant/Projects/project/public

Then in your Homestead directory, run:

vagrant provision

You will also need to update your hosts file to point to the Vagrant box.

sudo nano /etc/hosts

Add the line:

127.0.0.1           local.project.example.com

Now you should be able to access this Laravel project by hitting: `local.project.example.com:8000` in your web browser.

Assuming you followed the Laravel installation instructions, the easiest way is to use the Laravel command in the terminal. To create a new Laravel project called "blog", navigate to `~/Developer/workspace/PHP` and run the command:

laravel new blog

- I hope the above answers get you started down the right path. The most important thing is to carefully read the Laravel documentation as it covers everything I just did but in much greater detail.

Problem

I am quite buzzed with the whole Homestead stuff and how it correlates with an IDE. Let's say I have my PhpStorm installed in `~/Developer/PhpStorm` The Homestead is in `~/Developer/Homestead`. This is how my YAML file in Homestead looks like: ``` authorize: ~/.ssh/id_rsa.pub keys: - ~/.ssh/id_rsa folders: - map: ~/Developer/Homestead/workspace to: /home/vagrant/Code sites: - map: helloworld.app to: /home/vagrant/Code/Laravel/public variables: - key: APP_ENV value: local ``` So, you see that I have a workspace folder in the Homestead directory. I also have another directory: `~/Developer/workspace/PHP` where I am planning to store my projects, instead of in the Homestead folder. I installed the Laravel plugin in PhpStorm. And, in order for the Laravel plugin to work in PhpStorm, this generated file is needed. My questions are: - Where exactly should I put the `_ide_helper.php` file so that PhpStorm works properly with Laravel? Should I paste it in each project or just once somewhere? - Do I have to write a different app name in the YAML sites: map field for every project that I want to be launching atm? - How do I create a new Laravel type project. As when I go for creating a new project in PhpStorm, there are types of which I can choose - should I also have Laravel listed there, because I do not? Because now, when I create a new PHP project - it's completely empty. And I suppose a Laravel project should have some architecture and generated files. - I beg of a simple explanation of all this Laravel + Homestead stuff and Vagrant and how to control my projects, because I am getting very frustrated and I have to start working with these technologies on my Bachelor project soon.

Original source