I use the IDE Visual Studio Code to write scripts in PHP. To write plugins in PHP for a store system, I need to add an external library to my worktree. I have already cloned the library from github and added the folder to my workspace where I am working on the plugin.
The problem is that my IDE still gives errors that namespaces and classes can't be loaded because, for example, there is no namespace with that name. I also can't use the autocomplete feature.
Can someone explain me how to fix this problem?
Screenshots:
Undefined Type [...]
I have solved this problem now! To fix this problem I needed the vscode plugin "Intelephense".
In VSCODE: right click on the folder where the interface must be used and click on "Folder Settings". In the second row under the intelephense extension the radio button "Intelephense > Environment: Include Paths" is shown. There I had to add the path to the interface.
I wanted to start a new Zend project, and currently I'm facing some issues regarding Eclipse PDT... My problem is, that the code completion in Eclipse for PHP does not work at all.
I tried a lot of different tutorials etc, for example making a new project and import the files; making a new workspace and import projects there; almost every possible combination of buildpath settings and library imports; deleting several files in .metadata (you will find lots of tutorials like this if you google for it), but nothing worked.
[Edit] Also the PHPNature is set (thanks to tranisstor):
<natures>
<nature>org.eclipse.php.core.PHPNature</nature>
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
</natures>
(It also does not work if there is only the PHPNature set, and no other in addition)
[/Edit]
The problem in detail: I made a new Zend project, and tried to start coding in the IndexController.indexAction(). First thing I did: I typed in $this->, but no code completion came... I thought maybe I would need to add the Zend library, which I did. When I click into the Zend_Controller_Action in class IndexController extends Zend_Controller_Action I can see the documentation of Zend_Controller_Action, I also can press F3 and the corrosponding file will appear... Which means, Zend is successfully added as library.
I also tried Ctrl + Space, but just nothing happens. By the way, the standard PHP functions like isset() also won't show up in code completion
Does anybody have a idea how to fix this? I am using Eclipse Juno, with Eclipse PDT 3, and Zend Framework 1.x (don't know exactly, but it's not ZF2 and it works well if I open http://localhost.
I'm grateful for any help
I had the same problem when upgrading eclipse to Kepler. The following worked for me:
Remove files under workspace/.metadata/.plugins/org.eclipse.dltk.core.index.sql.h2
The reason was that the workspace old DLTK index is not compliant with the new version and needs to be rebuilt. Start eclipse and the DLTK index will be regenerated.
Code completion worked for me again after that.
i feel you, i had to deal with this quite often too, and the mentioned .project file modifications didn't do the trick.
What helped me was this:
edit the .buildpath file and add
<buildpathentry kind="con" path="org.eclipse.php.core.LANGUAGE"/>
My complete build file might then look sth. like this:
<?xml version="1.0" encoding="UTF-8"?>
<buildpath>
<buildpathentry kind="src" path=""/>
<buildpathentry kind="con" path="org.eclipse.php.core.LANGUAGE"/>
</buildpath>
i also added my folder which contains the php files to the build and include path (RMB over the project), but i don't think that it was necessary, the most important part was the modification of the .buildpath file for me.
Hope that helps...
The standard solution (at Eclipse forum) didn't work for me. What fixed this problem was the following:
going to Properties for my project (right click on it in PHP Explorer, then Properties),
select PHP Build Path/"Add Folder"
in there I ticked/selected my project's main folder.
It took a while while the DLTK database was refreshed (it could block your machine for a couple of minutes, be patient) but then it started working great.
Remove workspace/.metadata/.plugins/org.eclipse.dltk.core.index.sql.h2/*. It should works.
Hope it helps!
I think this is the best way:
Right click on you project in the project Explorer » Configure » Add PHP support...
Maybe you need to edit your .project-File and add a "PHP nature" tag. See this thread for more information. I once had this issue after putting a project under svn version control and it seems to be a common problem.
I've found a sollution on eclipse forum. Downgrading to PDT 3.1.2 solved the problem.
Regards,
Marek
I had a similar issue, but involving just one PHP file. Then I found that I was using the following syntax for the initialization of a variable inside a method:
$rule = ($fullValidation)?(new StartTimeRule()):(new NullRule());
The problem seems to be the use of the inline condition. The code was working but apparently broke some Eclipse features, like the F3 command, autocompletion, the outline view, etc. I could be wrong, but I think this is a bug of the DTLK indexer.
I changed that line with a standard if statement, not an inline condition, and all the features now work again.
Hope this can help!
After trying the other possible solutions on this page, I managed to get code completion to work in PDT 3.2 with the latest Dynamic Languages Toolkit in Eclipse Juno.
Juno usually installs DLTK version 4.0 by default so I downloaded DLTK 5.0 from here: http://download.eclipse.org/technology/dltk/downloads/drops/R5.0/R-5.0-201306060709/. Use the Core Frameworks > EMF > Runtime Version link, which downloads a zip file so you will need to do a local install:
In Eclipse select Help > Install New Software > Add > Archive > navigate to the zip file > type DLTK in the Name box and confirm.
Use Eclipse's Install new software to get PDT 3.2 from the PDT repository, if it is not already installed: http://download.eclipse.org/tools/pdt/updates/3.2/release
Option 2: Before I tried the previous method I installed PDT 3.1, which I got from the Juno update site (instead of the PDT repository):
Install New Software > http://download.eclipse.org/releases/juno. Code completion worked in 3.1, so it's another possibility.
Download ZF2 and put it to your perefered Location (~Frameworks/ZF2)
Eclipse: Window > Preferences > PHP > Libraries = Push "New"-Button, add a Name
choose added Item and click "Add External Folder"-Button. Choose you ZF2 destination
Be sure, your Project is "PHP Project" (see: Mark Project-Base-Folder, click Project in Menu > Project Natures and choose PHP Project.
This will rebuild your Project, if not also choose Project > build Project.
Now all should work like a charm (on Kepler Service Release 2)
I'm just starting with wordpress tutorials and I am not familiar in using Eclipse-PHP. It seems like eclipse is easier than notepad++ as editor so that i want to learn how to use eclipse editor.
My problem is its quite pain in the ass figuring out how to just simply navigate my files Using Eclipse. How can I navigate my XAMPP files using PHP-Eclipse.
The picture below shows the expected output on navigator window:
I'll use this to auto update my htdocs files in my localhost server in xampp.
I see the link here which gives the instruction to switch workplace but i don't get how to browse the files with the categories below:
Please help me with this and i'm about an hour exploring php eclipse.
Your help will be greatly appreciated for a starter like me.
In Eclipse you create "projects" as opposed to browsing the entire filesystem. So in this case let say you had a blog to work on that you have in htdocs/theblog.com.
You would right click on the project explorer window and "Create new project" then choose the appropriate project type - in this case PHP. Then you would select the option that says use an existing location and browse in typical fashion to htdocs/theblog.com. Then proceed through the rest of the wizard. and finish.
Eclipse will then index the project and run a series of validators and stuff... essentially "building" the project. After that you will see the project in the project explorer pane. You can repeat this for all your individual projects.
Like wise you can close and open projects to keep them out of the way when youre working on one or another.
I have an existing project utilizing git and have just installed eclipse along with egit. I pointed to the git repository with egit and can see all my files, my existing branches and can switch between branches.
When I open a file from the view of the git repository it does not seem to recognize that it is a php file, doesn't show me the classes within it and doesn't do code completion. If I just drag a file in from explorer it at least recognizes that file as php, but doesn't understand the project well enough to show me code completion from installed libraries. I think I need to configure eclipse to understand the projects home directory, but am a bit lost. Any help would be appreciated.
Your answer may fall within this guide to change the "nature" of your project. It's at least worth exploring. I will be attempting to do the exact thing you've described some time this week so hopefully it will work. The wiki doc also suggests that certain "natures" may conflict with each other but hopefully that won't be the case here. Link -->
http://wiki.eclipse.org/IRC_FAQ#How_do_I_manually_assign_a_project_Nature_or_BuildCommand.3F
After just trying to reproduce your steps I am having the exact same experience. I believe this may be "expected" behavior. For clarity, when I open a php file from the "PHP Explorer" view everything seems to work fine but when I open a php file from the "Git Repositories" view Eclipse treats it as a text file (no code highlighting etc.). I suggest that you work from the PHP Explorer view and leave the Git Repositories view open separately only to watch/monitor the repository not as a working view of files to edit and what not.
You need to open it as a PHP Project from existing source (GIT working folder) then share the project with Git, ie, right-click on the project, go to Team > Share project, click on Git.
See http://www.youtube.com/watch?v=-Zba8iAnLms for a demo.
Did you install the pdt plugin in eclipse? It should recognize any .php file opened. Shouldn't matter where it's located.
i am trying to use my workspace C:\Program Files (x86)\Zend\Apache2\htdocs, as i need to in order to use my Zend Server, but i get the error "workspace in use"
i have:
deleted all other copies of eclipse that i used
looked for a .metadata folder but not found one in my current eclipse folder (brand new eclipse PDT with Zend)
any idea as to what the problem can be? and how to fix it :D
thanks!
Check your workspace directory for :
.metadata and delete it (can be
hidden in your explorer)
.version.ini , open it an delete
all entrys
I think deleting .metadata will cause you to lose your tracked projects. Im not positive though ( don't really want to test it haha). However if you go in that folder (WORKSPACE/.metadata/) and delete the .lock file it should allow you to open the workspace. Hope this helps!
Just offering two other solutions for anyone who faces the workspace issue and ends up on this page.
This is one solution
and the other solution is if you were working on eclipse by connecting to a server via ssh.
In this case, the ssh might time out and your eclipse process would still be active on the server.
Solution is:
Type ps -aef | grep eclip
Find the process number of eclipse and type kill -9 process number