No, I am simply echoing the description found in https://en.wikipedia.org/wiki/Software_framework
Nope, if you have to write code to call “it” then “it” is a library. If “it” calls code that you write then “it” is a framework. If your code controls the processing flow, then you are using a library. It “it” controls the processing flow, then “it” is a framework.
Yes. That is what abstract classes are supposed to be for, to define in one place all the methods which may be used in any of the concrete classes which inherit from that abstract class. The fact that my abstract class is bigger than anything which you have ever written simply means that I have created more sharable methods than you can possibly think of.
Martin Fowler’s description of a transaction script (see http://martinfowler.com/eaaCatalog/transactionScript.html) does not match my component scripts (see http://www.tonymarston.net/php-mysql/infrastructure.html#component.script). You need to actually READ both articles to understand why.
Your definition of SRP is totally skewed. It says that I should take a monolithic piece of code and break it into manageable modules with separate responsibilities, such as presentation logic, business logic and data access logic. This is EACTLY what I have done by implementing the 3-Tier Architecture. By going too far and breaking these modules into smaller pieces you will do nothing but end up with a fragmented system in which all unity is lost. My Model classes do not contain any control logic as that is held in, and only in, my Controllers. My Model classes do not contain any view logic as that is held in, and only in, my Views. My Model classes do not contain any data access logic as that is held in, and only in, my Data Access Objects. There are no methods in my Model class which do not belong in my Model class. There are no methods which I can move into other classes, and if I did move them I would end up with more code as I would have to instantiate another class before I could call any of its methods. Every competent programmer knows that having too many classes makes your code slower.
My framework is a mini-application insofar as you can “run” the framework, and there are online screens in the framework which allow you to generate new components for your application, and then run those components which have default behaviour until to insert code to do something different or extra. The framework therefore provides default behaviour which is of use to the application, but the processing flow is still controlled by the framework, which makes it a “true” framework and not a library.
Yes it does. You said nobody would need that feature. The only reason that I added that feature to my framework because customers (note the plural) specifically asked for it.
So you admit that you don’t care what the customers think of the software that you write provided that your fellow developers think that it is “cool” and “pure” and written to “proper” standards.
No it doesn’t, by virtue of the fact that you have to write reams of code yourself before you can do anything. After you have installed this thing-which-masquerades-as-a-framework, can you run it? Can you generate application components with it? Can you then run those components with it?
Wrong again. I never said that I don’t follow proper coding standards or best practices. I most certainly do, but they do not happen to be the same as the ones which you follow.