S
S
serguey_issakov2019-11-05 16:29:02
PHP
serguey_issakov, 2019-11-05 16:29:02

What is a PHP framework for a cross-origin data processing application?

I'm a bydlokoder, I'm making an application (hereinafter - app) that will be much smarter than me. In terms of meaning and architecture - ETL with a user interface for job dispatching.
The main headache:
- a huge variety of data sources (mainly REST API), objects are all about the same nature. All sources carry a single interface, you need to easily switch between them in the admin panel.
Example:
1. A blogger user can blog in Bitrix or WordPress, in the admin panel he has a choice between these sources. But Bitrix gives the post in the format { id:"1", begindate:"01.01.1970 00:00:00", text:"foo"}, wordpress as { id:"1", post_date:"1970/01/01T00 :00GMT", post_text:"baz"}.
2. A new version of WordPress has been released, where the post_text field was renamed to post_content, which means that now we ask the user in the admin panel, in addition to choosing between Bitrix or WordPress, also the system version in order to rename this field for business logic inside the task
3. The user maintains his own blog on a self-written custom engine, we write an individual connection class custom_DAO_Igor.php for it (for example, we knock directly on its database) and put this class in the folder of existing sources. In the admin panel (or file config), now we select $dao_type = "custom_DAO_Igor" and the task understands at startup that we need a source that is instantiated from this specific class (lib\dao\custom_DAO_Igor.php) inside which lies the only class Custom_DAO_Igor implements Post_Dao_Interface.

- centralized instantiation of objects (facade / factory).

Example:
in ten places (or most likely an indefinitely large number) of business logic, you need to fit into WordPress and refine the list of tags so that they all receive a link to a single connection through the facade / factory, instead of creating a dozen (more) new ones.
- jobs of approximately the same nature, but you need to control the job from within the objects (management facade?)
Example:
business logic may require the task to be stopped if it encounters some error at the environment level (the server does not respond for 30 seconds).
or at the request of the business logic somewhere inside the task (post_text contains Dzhigurd -> close all connections, write "zashkvar" to the log and delete the user account).
It is important that stopping the task does not mean the end of the entire php process - the task manager must receive a stop signal through the Control Facade and proceed to the next task according to the plan.
What I have already smoked: forums, symfony and laravel docks. As I understand it, all major frameworks will not help me much, people write their custom repositories and connections there, then describe them in code, this, of course, is real when you have a finite number of them, but here there is an infinite number of different ones, but with a single interface. Every time we write in the code that you have a new source, let's get it out - we want the framework to just be able to require instantiation by the class name received in a variable like app::singleton("custom_DAO_Vasily_3_0", $arParams); this is the main question, I will bypass all other types of management facade architecturally, if that.
Tell me if you know which framework handles this out of the box.
Or someone who has already encountered this and can act as a technical expert by agreement
Thank you

Answer the question

In order to leave comments, you need to log in

3 answer(s)
D
DevMan, 2019-11-05
@serguey_issakov

umm.... kagbe no framework prevents to create object on the basis of external data.

A
Anton Shamanov, 2019-11-05
@SilenceOfWinter

for beginners slimframework.com https://github.com/PHPixie

P
profesor08, 2019-11-05
@profesor08

CodeIgniter will cover all the described requirements. That's right, it's perfect, any version. They are truly made for each other.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question