 Okay, I guess it's time for us to start, it's five o'clock. This will be a lightened session, so we'll be free of us talking for about 15 minutes, and there will be time for Q&A session in the end. Of all the talks. Well, hello, my name is Alex Gapchenko, and I'm the project manager, product manager, and development lead of PHP Storm product from JetBrains. First, I'll show this climber. Not me, not any one of my team or not any one of my company is what you can call a real-world PHP developer. We do test PHP every version, every build, every kind of feature that is added to PHP, to PHP tools, frameworks, and all the stuff, but we don't use them in production. We view them from point of integration. So our perspective is kind of specific, but the whole point of PHP Storm was to bring the level of tooling and instrumentation available for general developers, the net developers that we have back to PHP community, which many of us came from in our youth ages. And so far I can say we have succeeded because we have now hundreds of thousands of users, and how many of us have actually used PHP Storm? Okay, well, this session will be really quick, and I will show some highlights that I think will be useful both to existing users and new users. Some generic stuff, some jubile stuff, and maybe some couple of advanced tricks. Okay, now. The first thing, if you just open, it's really easy to start in PHP Storm. You just go to File, Open, Folder, and start typing your code in. AD will try to be as smart as possible, suggest you something. But it's really a place to invest some time to get know your tooling better so you can actually build up your productivity to get know what features are available so they become the building blocks, and you can be faster, more productive, think less of some processes that are not directly related to development itself. Everybody knows the boring thing called tip of the day, which bothers everyone in every product on desktop until now, but we have something of opposite. The thing is called Productivity Guide, and whatever you didn't use PHP Storm at all or have it used for a day or for a week or for a month, I really suggest you to go to the Help Menu and Open Productivity Guide and check out what it tells you. What features have you used how much? And most importantly, what features haven't you used yet? I suggest you to try them at least once. So maybe you will find something in particular. All of us have different workflows, different requirements, our minds work differently, and ID has sets of features which fits different workflows. My statistic is not really impressive because this is my debug version, so I have time with only 140 characters in this copy of Product, but if you look into my home environment, we will give Java code, this will be much more impressive. It saves me many minutes of time daily, and still there are lots of features that I haven't never used yet. So there's a lot of learn for everybody. If you're already using PHPStorm or have you used it yet, sometimes you may feel lost because we have a hundred of options, a hundred of menu items, and for example, this particular Drupal project has 5,000 files. How to get around? The first thing that is most important is also in Help Menu, it's find action. So if you don't know how to find something in this product, what is this shortcut on keyboard, where it is in the menus, so you're completely lost, but for example, you hate the light numbers, they irritate you completely, or you want them. You can quickly find this section, toggle it right here, or go to Preferences and tweak it to your liking. This works for any actions, it also works with synonyms, and next thing, then in Settings, you can have it the same. If you work with Drupal, the one setting you need to be sure is enabled is enabled Drupal integration. Right now it is enabled and we'll need the Drupal installation path. The next thing, how to find anything around in your project anywhere. I particularly don't remember where my files are in which folders I always use in the search. You can use it by file name, typically, or some symbol name, class name, JavaScript variable, or anything like that. If you try to type this here, this action called social where you can find it via find action, or just press double-shift, it will make it easy across all platforms. Right here you can see both files, symbols, and actions, everything in the product. Now if you have some files open already, if you are working, you may need to find where exactly they are in your file tree. So you have an action called select in, which will help you to find your current file in any of the tool windows. For example, you can quickly locate this file in ProjectsView to do something around it. Like this. While in any view, any tree search also always helping you. If you try something, type to something, like JavaScript here, it will narrow your navigation possibilities to matching symbols, regardless of how many symbols are in view. And from any of the views with double-escape, you can quickly jump back to the editor to continue typing your code. Now for something, for Drupal, if I try to declare function in this module file, which names looks like Drupal hook, we will provide you with suitable hook names, and most importantly, we will provide you with help for these hook names. So you can quickly look up what needs to be done, which parameters are provided, and all of that. For the sake of demo, I'll just complete any of them, and you can notice there is a special symbol here. There is a concept in our product called go to declaration and find usages. For example, we consider this as hook implementation, like kind of object-oriented concept. So you could go to its parent declaration. There are two options. You can go to its actual formal declaration with help in everything, and you can find where it's actually involved by Drupal framework. And it's worked for all hooks and everything. And while you are there, you are coding new hook, you can go to declaration and try to navigate back and look at all of different implementations across all the models. How other models are implemented in this particular hook. So you can check it out. You maybe copy-paste some code to serve as boilerplate for your own code to get your start started quickly. Well, next thing, while you're looking at Bish Pistorm, I always use some kind of source control. For example, for this project, I called git init on this folder. So all of the contents that I got from the web immediately is under git-source-control. And right now, if I change something, you can see the change markers right on the gutter here. So you can try to if I change something here, for example, formatting or anything, you can see the changes and everything like that. And you can navigate to this file changes you. So you can review your changes in a proper DPU. You can commit your changes and do all of that. These all tools integrated directly in the environment, you don't need to switch context at all. The same layer of integration is available for all source control systems for most important tools. For example, I consider one of my most important tools nowadays, a virtual machine environment like Drupal, sorry, vagrant and something like that. When also there is a kind of lots of noise in this window, you can see some markers right here. Now this is what we call code analyzers. You can run standalone tool, for example, like code sneaker to have your code checked against coding standards. Right now here, you can have this on the flight directly in the editor. So if you see one of the yellow markers this idea suggests there is something wrong here. I can tell you if you use actually open any real code base from the internet, like Drupal sources or I don't know, Magent or Zenfremware sources, Symphony sources and run this whole set of inspection framework, you will find hundreds of real errors not fixed in latest version right now. So you should always there is a rule in our company if I commit anything to my source control I check that this marker is green. And particular set of rules which is working for your project, for your coding style is completely tweakable. You can go and configure all kinds of checks you wanted and all run both in real time and at the moment of you then you try to commit or push into source control so you can have two levels of checks. Then quick things about editor personally I am kind of person that never remembers where stuff is but I remember names of stuff or for example this file is quite long but I never use a scroller and even or I'm jumping around I always use a structure pop up it looks like this and I quickly can narrow down my selection to any particular method and jump around and also all these jumps are certain kind of history like in browser so you can quickly jump back to where you were, to hooks and jump forward any point so and also all what I have typed in then typed in again is called a local history it is much more than you having your commits it stores all sets of changes between your commits so you can go in any point of time and rescue your code if you was having some kind of good solution like 10 minutes ago now you type in something and it stop at work you can roll back well this are the highlights that I have right now I have like 3 minutes for Q&A right now and fortunately for us we have a boot downstairs so if anyone wants a hands-on on something more specific like ex-debug which is always pain to configure or database support or some specific stuff came to a boot we gladly give you a hands-on tutorial personal any lens now questions thank you so question is which is the best way to learn shortcuts I personally learn them gradually for new things which I know that are there I use the find action if you use it actually there is one selection there is a shortcut displayed right there in if you go to productivity guide it also includes selection for each feature for each one of them so basically shortcuts displayed everywhere and the third thing is if you want like a systematic approach like a table there is default came up preference which will open printable came up and we have them in our booth some came to us and gave some to you yeah yeah the name the keyword you should remember is structure so this is the same thing which is here structure panel and if you try to look it up so my current came up it's control F12 but it's really different yeah that's not I'm not talking shortcuts I'm talking names and keywords because you need to remember something which is scalable between windows and Linux for example double shift this is you can use double shift it's right here next question one minute okay thank you so welcome to our booth downstairs it's number three or something on the corner visible directly from the doors thanks