Generic support for (php) frameworks


#1

DreamFactory creates easy access to databases through ReST. By simply adding a datasource you are immediately presented with a complete ReST API enabling you shape your data exchange.

The fine-grained access right structure you can create within DSP is clear and easy to implement.

DSP is a perfect solution for app builders that require a simple backend fast to be able to send data to and from an app.

It is also an excellent way to create database to database connections.


I got into DSP because of a use case, where an already existing application, needed to be unlocked with an API to another system. With this system I have models that I want to access for the other system.

After research we chose to create a generic as possible ReST adapter for the following reasons:

DSP accesses the database through ReST. Erasing data on database level means in our situation that:

  • the validation of PHP models cannot be executed directly
  • the business logic can only be addressed indirectly based on a trigger to the client on the API
  • Security lies on two spots (model role, url and controller action) and again duplicated in DSP for an API user
  • triggers for new data should then be added per model and with polling (not an effective method) share their state

A possible solution would be to build an abstraction layer that allows frameworks to deliver a reflection of their - to be shared database (read models) - and that the exchange of data could be arranged on a model / repository level solving all above mentioned problems.

Support for frameworks that function on a basis of database abstraction should be do-able that way.

is this something that could have a place on a future roadmap.
Support for doctrine driven frameworks like Symfony, Zend Framework, CodeIgniter, TYPO3 Flow, Lithium


#2

Great feedback, makes sense. I’ve captured this for incorporation in the roadmap and shared with the engineers.

Version 2.0 has the foundation for what you’re looking for. The 2.0 beta will ship in about six weeks on GitHub. Definitely check it out and let us know what you think.