{"action":"created","issue":{"url":"https://api.github.com/repos/joomla-projects/webservices/issues/13","labels_url":"https://api.github.com/repos/joomla-projects/webservices/issues/13/labels{/name}","comments_url":"https://api.github.com/repos/joomla-projects/webservices/issues/13/comments","events_url":"https://api.github.com/repos/joomla-projects/webservices/issues/13/events","html_url":"https://github.com/joomla-projects/webservices/pull/13","id":88064945,"number":13,"title":"Start reworking things into an Standalone Application","user":{"login":"wilsonge","id":1986000,"avatar_url":"https://avatars.githubusercontent.com/u/1986000?v=3","gravatar_id":"","url":"https://api.github.com/users/wilsonge","html_url":"https://github.com/wilsonge","followers_url":"https://api.github.com/users/wilsonge/followers","following_url":"https://api.github.com/users/wilsonge/following{/other_user}","gists_url":"https://api.github.com/users/wilsonge/gists{/gist_id}","starred_url":"https://api.github.com/users/wilsonge/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wilsonge/subscriptions","organizations_url":"https://api.github.com/users/wilsonge/orgs","repos_url":"https://api.github.com/users/wilsonge/repos","events_url":"https://api.github.com/users/wilsonge/events{/privacy}","received_events_url":"https://api.github.com/users/wilsonge/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":20,"created_at":"2015-06-13T20:58:14Z","updated_at":"2015-07-06T20:50:07Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/joomla-projects/webservices/pulls/13","html_url":"https://github.com/joomla-projects/webservices/pull/13","diff_url":"https://github.com/joomla-projects/webservices/pull/13.diff","patch_url":"https://github.com/joomla-projects/webservices/pull/13.patch"},"body":"Implements a rudimentary J! Framework based application structure and namespaces all the library with some service providers. As a result removes the system plugin. Note this isn't in a functional state yet.\r\n\r\nThis also removes the ```getInstance``` method from ```JApi``` and moves it to be built in the application and injects the container into the ```JApi``` object because it depends on many things including the text, language and application objects.\r\n\r\nLarge Item Todos:\r\n- [ ] Refactor away from Legacy MVC to some sort of new MVC\r\n- [ ] Decide if we want a JTable replacement or whether we want to drop everything into models (me and @mbabker have discussed this a few times but nothing really ever came out of it)\r\n- [x] Implement a session for enqueing messages into the application. Joomla's session v1 is pretty much unusable. v2 is got finished by @mbabker today: https://github.com/joomla-framework/session/pull/12 but isn't merged yet so I didn't bother\r\n- [ ] Routing (because I couldn't work out at a glance how the current routing system really worked)\r\n- [ ] Work out how the component is going to interact with this app (99% of the CMS classes are not going to be injectable into this thing)\r\n- [ ] Work out how the app interacts with the frontend and backend of Joomla (things like ```JApplicationCms::isAdmin``` or the ```JPATH_SITE```/```JPATH_ADMIN``` constants\r\n- [ ] JLayouts don't exist on the framework level so decide if we want to port them into our app or use something like Twig, Plates, Blade or Moustache through the framework Renderer\r\n- [ ] Deal with replacing JDocument (cause it's never gonna exist in the framework cause it's a CMS weak link as it is) - as a temporary measure I've ported a simplified version of it into the app structure\r\n- [ ] Structure of the app - currently I only have media + index.php in the root. We might want to rework this in the future as a lot of cheap hosts don't allow this (which is why Joomla is installed by default totally into the root)\r\n\r\nSpecific Todos:\r\n- [ ] JUri::base() has a dependency on the Joomla config object. When this is now a service provider orientated object suddenly things become really hard really fast because you've got to pass either the configuration or Container in and things don't work. Michael in his Joomla Next! Repo ended up adding in a setBase and setRoot methods (https://github.com/mbabker/joomla-next/blob/master/libraries/core/Uri/Uri.php#L123) - but it doesn't seem ideal either. For now I've removed that section and just used the autodetection but it needs to be fixed before we put things live.\r\n- [ ] Do we want an interface for changing the application config (currently things that were in the params of the system plugin"},"comment":{"url":"https://api.github.com/repos/joomla-projects/webservices/issues/comments/118994304","html_url":"https://github.com/joomla-projects/webservices/pull/13#issuecomment-118994304","issue_url":"https://api.github.com/repos/joomla-projects/webservices/issues/13","id":118994304,"user":{"login":"wilsonge","id":1986000,"avatar_url":"https://avatars.githubusercontent.com/u/1986000?v=3","gravatar_id":"","url":"https://api.github.com/users/wilsonge","html_url":"https://github.com/wilsonge","followers_url":"https://api.github.com/users/wilsonge/followers","following_url":"https://api.github.com/users/wilsonge/following{/other_user}","gists_url":"https://api.github.com/users/wilsonge/gists{/gist_id}","starred_url":"https://api.github.com/users/wilsonge/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wilsonge/subscriptions","organizations_url":"https://api.github.com/users/wilsonge/orgs","repos_url":"https://api.github.com/users/wilsonge/repos","events_url":"https://api.github.com/users/wilsonge/events{/privacy}","received_events_url":"https://api.github.com/users/wilsonge/received_events","type":"User","site_admin":false},"created_at":"2015-07-06T20:50:06Z","updated_at":"2015-07-06T20:50:06Z","body":"You need to manually set up a database and create schemas (as the component doesn't work at this time - it needs a full rewrite).\r\n\r\nThen set up a config file (https://github.com/wilsonge/webservices/blob/app/config.json) with the correct values - this is the equivalent of the plugin settings currently.\r\n\r\nThe urls are the same as those used currently.\r\n\r\nFWIW I split things up further with https://github.com/wilsonge/webservices/tree/split which is the best thing to test - it gives you properly valid results."}}