Laravel API catalog

Hi

Is there a API catalog for the Laravel PHP framework available for Komodo ?

Thanks in advance

Kind regards
Steen

No, I do not believe there is one :frowning:

There’s the laravel-ide-helper, which I believe also works for Komodo IDE.

Hi

Thanks for the information.

Now, I have tried to include the generated file in my project, but did not help

There is another thing that I do not understand.

In the preferences, It is stated that Komodo will scan all files in the project to provide code intelligence, but that does not seem to work or do I misunderstand something ?

You have to keep in mind that with PHP there is a lot of autoloading going on, which is almost impossible to interpret by a system like codeintel. So some PHP frameworks will only have limited codeintel support because they are handling libraries in a far too dynamic way for it to be interpreted outside of the runtime.

The IDE helpers should definitely work though, make sure you follow the instructions correctly and that the generated files are on your project path or your PHP import directories.

Hi

What does autoload have to do with codeintel ?

I did have the generated file in my project, but it did not help

My point is: If i include the framework folder as a directory to use, then Komodo should be clever enough to pick up classes and functions from these folders.

Komodo should also be clever enough to pick up any classes and functions from any .php file in the project

I know IDE’s like PHPStom can do it without any special effort
I have even been looking into creating a .cix file, but Komodo does not allow me to add any new catalog - When I try, it opens the file, but then nothing happens

I only have 12 days left of my evaluation, so I need to get these ‘basic’ things working otherwise I have to look for another IDE

Everything. Autoload is essentially a way to load libraries at runtime. Since codeintel only interprets your static source it cannot know what your code does at runtime. There’s certainly ways of still making that interpretation (with a certain bias, eg. towards PSR-4) and we’ll be introducing this functionality in Komodo 10.

Komodo’s codeintel is strict, meaning it really does interpret your actual code rather than doing a fuzzy match on practically everything and get the closest result, but it may be wrong. This has its pros and cons of course.

In Komodo 10 this functionality will be muched improved upon. Komodo 10 isnt quite around the corner but it’s pre-releate (alpha, beta) probably won’t take too long. That said it will definitely be taking longer than 12 days, I’m sorry.

As you say autoload is for runtime, and IMHO has nothing todo with static code - as long as the IDE have a ‘clever’ way to scan source files in the project.

You statement means that Komodo can only do codeintel on the current file or in best case if there is a include() or require()

I do like the look and feel of Komodo, but without this ‘basic’ feature it is useless - sorry

I my search I just installed anothe rapp PHPDesigner, hooked it up to the same project as Komodo and within secods it could do codeintel - even without specifying any catalogs or anything else.

If you could point in direction of how to make the ide-helper working, I would be happy to stay with Komodo and wait for v10

In an ideal world I would agree, however PHP has autoload and as such this is not true. Autoload explicitly moves stuff that ought to be happening in static code to the runtime.

No, a lot can be interpreted from the static code. But if for example there is an autoloader that based on the request loads a library from a different location, then it is impossible for codeintel to know what will happen at runtime. Of course there can be logic attached to this and codeintel can be taught how to resolve autoloaded libraries, but this would require a bias towards certain specific frameworks. This is something we’re doing in Komodo 10, but is currently not yet available.

Point is, from a pure PHP perspective in which we cannot be biased it is impossible to resolve autoloaded libraries without executing (or emulating - not easy) the runtime. Please note I have over a decade of background in PHP and I’ve explored this issue many times, I know what I’m talking about ;).

From my understanding the laravel IDE helpers work, I have seen multiple devs use them on Komodo. Perhaps something changed in the latest version of Laravel though, or perhaps your project is structured in a way which causes issues.

Note the laravel IDE docs specifically mention SublimeCodeintel, which is using our codeintel engine (as it is open source). So if it works for SublimeCodeintel it should definitely work for Komodo.

I’m 100% sure and confident that you know what you are tlaking about - Please forgive me if I made another impression.

My project have the ‘standard’ Laravel structure, so Komodo should be able to scan the source files for class/function names

I have craeted the _ide_helper.php, put it into the root of my project - Still komodo does not do CodeIntel

Ok, i will try to look at the SublimeCodeIntel one more time

Are you following the readme on the laravel ide helper? You have to actually run it, not just put the file in your source code. When you run it it will generate files which need to be accessible by your project. It is the files it generates that Komodo will use to give you codeintel.

I wasn’t trying to imply you needed to do anything here, you don’t. I was only referencing this to explain that the ide helper should work with Komodo, as it is the same underlying technology.

well… yes, when you exexcute it, it will generate the _ide_helper.php - the advantage to execute it on my own project is that it will include my own classes.

I’m simply using the pre-generated file (_ide_help.php) just to get the basics

I do not see a pre-generated file on the ide helper repository. I would strongly recommend you actually run the script and generate some files, as this would also help you verify that your project setup is compatible.

Copied from the front page: (https://github.com/barryvdh/laravel-ide-helper)

Generated version for L5: https://gist.github.com/barryvdh/5227822

Ok, still - please try generating the files yourself. If this doesn’t work then that would give an obvious indication as to why you are not getting codeintel.

Hmmm…

I sincerely apologize

The problem was that I did not have ANY patience

so… the actual problem was that i did like this:

$this-> (and then nothing happened, whereas I would expect methods and vars to show up)

the only thing I have done is to close the current Komodo project, create a new to try to execute the creation of the ide helper file, when I saw that it work, I re-opened my ‘original’ project and now it seems to work.

The creation of the file do create a _ide_helper.php (almost the same as the on you can download) so I’m really puzzled why it did not work before.

So no excuse… I’m buying my licenses 

Ahh gotcha :slight_smile: To be fair we could do a better job communicating this process to you; but yes - Komodo will need to index the files before you get codeintel for them.