E2.01 Symfony Doctrine vs. Laravel(Lumen) (Wpf, Xamarin, Angular SPA, Reactjs SPA) - chempkovsky/CS2WPF-and-CS2XAMARIN GitHub Wiki

Reminder

  • View(or ModelView) is the structure that the Web Api service sends to and receives from the client. For each entity, the developer must create at least one view(or ModelView).
  • In terms of Sql-server, View(or ModelView) is simply a Sql View created for a given table and some (or all) direct and indirect master-tables that are inner or left joined to this table.

Number of objects to be created for the given ViewModel

  • For Symfony Doctrrine we should generate
    • 01140-Entity.php
    • 01142-EntityUpd.php
    • 01144-EntitySel.php
    • 01146-EntityTotal.php
    • 01240-Page.php
    • 01340-Controller.php
  • For Laravel(Lumen) Doctrrine we should generate
    • 01340-Controller.php
Of course, For Laravel(Lumen) there is additional script: 00520-ContextMigration.php. But this script is a context level and must be generated once per DbContext.

What for extra Symfony Doctrine projects files

  • 01140-Entity.php
    • to create database table
  • 01142-EntityUpd.php
    • to implement SQL insert/update/delete operation for the given ViewModel
  • 01144-EntitySel.php
    • to implement client/server communication
    • to implement SQL select operations
    • to implement validation on the server side
  • 01146-EntityTotal.php
    • to implement SQL "select count(*) from..." operation
  • 01240-Page.php
    • to send data from server to client

Conclusion:

  • In our case decision to use ORM for Symfony project was not very good
    • maintenance issue
    • additional server resources issue

What to do:

  • take a deep breath first
    • very important thing in our case
  • completely rewrite generatos for Symfony project
    • it'll be a parallel implementation