{"id":26057835,"url":"https://github.com/feenkcom/pdt2famix","last_synced_at":"2026-04-17T18:33:22.206Z","repository":{"id":110079175,"uuid":"105887777","full_name":"feenkcom/pdt2famix","owner":"feenkcom","description":"pdt2famix takes PHP code and produces MSE files that can be imported into Glamorous Toolkit.","archived":false,"fork":false,"pushed_at":"2020-04-27T11:51:02.000Z","size":7224,"stargazers_count":2,"open_issues_count":2,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-10-25T04:51:38.330Z","etag":null,"topics":["glamorous-toolkit","mse","php"],"latest_commit_sha":null,"homepage":"https://gtoolkit.com","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"epl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/feenkcom.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2017-10-05T12:34:21.000Z","updated_at":"2022-04-08T00:18:07.000Z","dependencies_parsed_at":"2023-05-21T02:30:31.001Z","dependency_job_id":null,"html_url":"https://github.com/feenkcom/pdt2famix","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/feenkcom/pdt2famix","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feenkcom%2Fpdt2famix","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feenkcom%2Fpdt2famix/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feenkcom%2Fpdt2famix/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feenkcom%2Fpdt2famix/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/feenkcom","download_url":"https://codeload.github.com/feenkcom/pdt2famix/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feenkcom%2Fpdt2famix/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31940934,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-17T17:29:20.459Z","status":"ssl_error","status_checked_at":"2026-04-17T17:28:47.801Z","response_time":62,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["glamorous-toolkit","mse","php"],"created_at":"2025-03-08T11:59:11.739Z","updated_at":"2026-04-17T18:33:22.200Z","avatar_url":"https://github.com/feenkcom.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# pdt2famix\npdt2famix takes PHP code and produces MSE files that can be imported into Glamorous Toolkit. Based on Eclipse PDT.\n\n\n## Setting up the project \n\nTo run pdt2famix you need first to setup an Eclipse PHP project containing the code. To do this download and configure eclipse PDT:\n\n- download Eclipse PDT ([www.eclipse.org/pdt](https://www.eclipse.org/pdt)); Use at least Eclipse Oxygen;\n- install the Symphony plugin ([symfony.dubture.com](http://symfony.dubture.com)). pdt2famix needs the plugin to resolve Doctrine annotations and work with Symfony projects;\n- configure the paths to the `php` executable (optional).\n\nNext import the project into workspace. Depending on the type of the project you can import it using different wizards:\n\n- *importing a Symfony project*: select to import a `Symfony Project`. Configure the project name and the path to the source code. For this import to work all dependencies (the `vendor` folder) as well as the container dumper file (`appDevDebugProjectContainer.xml`) need to be present. You can setup this by runing `composed install` (requires `php`) or getting them from somebody who did this, if you do not have `php` installed.\n- *create a standard PHP Project from existing sources*: select to create a new `PHP Project`. If the folder containg the code is in the workspace folder then select `Create a new project in workspace`, otherwise `Create project at existing location`. If you select the first option give the project the same name as the folder containing the project. This way Eclipse will create the project using those sources.\n\nAfter the project is loaded run `Project-\u003eClean`. This refreshes and builds the project and can reveal if there are any missing dependencies. If any dependencies are missing add them to the build path of the project.\n\n## Setting up pdt2famix\n\nOnce Eclipse PDT is installed and you imported the project in an workspace you should setup pdt2famix. You can choose to install pdt2famix as a plugin in the Eclipse PDT installation that you previously configured or run it as a standalone application.\n\n### Running pdt2famix as a plugin\n\nCopy the jars for pdt2famix (`com.feenk.pdt2famix_*.jar`) in the plugins folder of the Eclipse PDT installation and restart Eclipse. pdt2famix adds a context menu action `pdt2famix -\u003e Export MSE/ASTs` available in the  `Project Explorer` view when selecting a project.\n\nOnce the pdt2famix plugins are installed in Eclipse, they can also be invoked from the command line:\n\n```./eclipse.app/Contents/MacOS/eclipse -nosplash -application com.feenk.pdt2famix.client.application -data \u003cpath_to_workspace\u003e -pdt2famixProject \u003cproject_name\u003e```\n\nIn the previous command:\n\n- `eclipse.app` is the Eclipse app where we installed the plugings;\n- `\u003cpath_to_workspace\u003e` is the path to the workspace where we loaded the projects;\n- `\u003cproject_name\u003e` is the name of the project that we imported in the workspace.\n\nExtra parameters:\n\n- `-consoleLog`: show the full Eclipse log in the console;\n- `-pdt2famixCleanWorkspace`: clean the current workspace including all projects;\n- `-pdt2famixBuildWorkspace`: build the current workspace including all projects;\n- `-pdt2famixCleanProject`: clean only the given project;\n- `-pdt2famixBuildProject`: build only the given project.\n\n### Running pdt2famix as a standalone application\n\nDownload and extract the archive containing the pdt2famix standalone application and run:\n\n```./pdt2famix.app/Contents/MacOS/pdt2famix -data \u003cpath_to_workspace\u003e -pdt2famixProject \u003cproject_name\u003e```\nExtra parameters:\n\n- `-consoleLog`: show the full Eclipse log in the console;\n- `-pdt2famixCleanWorkspace`: clean the current workspace including all projects;\n- `-pdt2famixBuildWorkspace`: build the current workspace including all projects;\n- `-pdt2famixCleanProject`: clean only the given project;\n- `-pdt2famixBuildProject`: build only the given project.\n\n## Setting up the development environment for pdt2famix\n\nThis section provides details for setting up a development environment for pdt2famix. \n\nFirst you need to configure eclipse:\n\n- download (Eclipse for RCP and RAP Developers)[https://www.eclipse.org/downloads/eclipse-packages/]. pdt2famix uses Eclipse Oxigen;\n- install Eclipse PDT using the update site (Eclipse PDT)[https://www.eclipse.org/pdt/#download]. The version used by pdt2famix is Eclipse PDT 5.2. Install also the Source Code for PDT from the SDK (or the entire SDK);\n- install the Symphony plugin ([symfony.dubture.com](http://symfony.dubture.com));\n- configure the paths to the `php` executable (optional).\n\nNext clone the pdt2famix repository, and import all the Java projects into the workspace. pdt2famix also contains the project `com.feenk.pdt2famix.exporter.samples` that define tests for the exporter and does not have to be imported into this workspace.\n\nTo launch pdt2famix in a new Eclipse installation create a launch configuration for an `Eclipse Application`. pdt2famix will add a context menu to the `Project Explorer` view.\n\nTo launch pdt2famix as a product (headless) create a product configuration that runs `com.feenk.pdt2famix.client.product`. You can also create a launch configuration that runs the application `com.feenk.pdt2famix.client.application`.\n\nTo run the tests associated with pdt2famix create a new launch configuration for `JUnit Plug-in Test` and select to run the tests from the project `com.feenk.pdt2famix.exporter.test`. The current version of pdt2famix needs to run the tests in a workspace where the project `com.feenk.pdt2famix.exporter.samples` is already loaded. Hence, before running the tests you need to configure an new workspace where this project is loaded and update the `Location` parameter of the launch configuration to point to that workspace. Then make sure the launch configuration only clears the log and not the entire workspace before running the tests, as otherwise the project will be removed before running the tests.\n\n## Releasing pdt2famix\n\nFor exporting only the plugins use from the Export wizard (File -\u003e Export...) the wizard `Deployable plug-ins and fragments`. The exported plugins can then be just copied in an Eclipse installation where Eclipse PDT and the Sympfony extension are installed.\n\nFor exporting a headless eclipse application use the the wizard `Eclipse product export wizard` from the product `pdt2famixproduct.product` in the project `com.feenk.pdt2famix.client`. On MacOS this wizard does not product a 100% working application. To make it work:\n- copy the file `MacOS/pdt2famix` to `pdt2famix.app/Contents/MacOS`. This makes `pdt2famix.app` a valid MacOS application;\n- fix the dependency to `org.apache.lucene.core`. For some reason the export wizard creates a dependency to `org.apache.lucene.core_2.9.1.*.jar` instead of `org.apache.lucene.core_6.1.0.*.jar`. To fix this copy the jar `org.apache.lucene.core_6.1.0.*.jar` (for example `org.apache.lucene.core_6.1.0.v20170814-1820.jar`) from the plugins directory of the Eclipse instalation used to develop the plugins, to `plugins` folder of the exported pdt2famix and remove the existing `org.apache.lucene.core_2.9.1.*.jar` plugin (for example `org.apache.lucene.core_2.9.1.v201101211721.jar`). \n- update `configuration/org.eclipse.equinox.simpleconfigurator/bundles.info` with the dependency to `org.apache.lucene.core_2.9.1.*.jar`. Find the line defining the dependency to `org.apache.lucene.core_2.9.1.*.jar` and update it to point to `org.apache.lucene.core_6.1.0.*.jar`. For example: `org.apache.lucene.core,6.1.0.v20170814-1820,plugins/org.apache.lucene.core_6.1.0.v20170814-1820.jar,4,false`\n\n## Creating a product for exporting pdt2famix\n\nExporting pdt2famix as an Eclipse plugins is done using a product configuration. The easiest way to create a new product configuration is from an exising launch configuration. To create a new product configuration for pdt2famix:\n\n- create a new launch configuration for an `Eclipse Application`\n- as `Program to run` select `Run an application` and then use `com.feenk.pdt2famix.client.application` (this is the application provided by pdt2famix for running the exporter);\n- in the `Plug-ins` launch the configuration with `plug-ins selected below only` and select `com.feenk.pdt2famix.client` and `com.feenk.pdt2famix.exporter`;\n- use `Add required plug-ins` twice to add all dependencies;\n- if running `Validate plug-ins` trigger an error search for and add `org.eclipse.equinox.ds` together with all its dependencies;\n- add `org.eclipse.dltk.core.index.lucene` together with all it's dependencies\n- run and test that the configuration works\n\nNext create a new `Product Configuration` using the previously defined launch configuration. In `Product Definition` use `com.feenk.pdt2famix.client.application` as an application. For `Product` create a new one or use an exiting one. The `Product` referes to extensions for the extension point `com.eclipse.core.runtime.products` in the project `com.feenk.pdt2famix.client`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffeenkcom%2Fpdt2famix","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffeenkcom%2Fpdt2famix","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffeenkcom%2Fpdt2famix/lists"}