CakePHP compared to Joomla - php

So the past month ive been working alot with CakePHP getting to know the conventions also getting better at the MVC structure and how it works.
Now in cakephp you basicly bake Model views and controllers where Models are assoiciated to Database tables and controllers handle the request back and forward from the Model and the view.
Now Joomla is build in a different way. As far as ive understood Joomla is build up of modules and components but these components and modules follow the MVC structure.
Now to my Question:
How close is cakephp programming to Joomla programming like how does it compare? is creating components and modules the exact same thing as creating Models and Controllers in cake (execpt from the Api calls not being the same)?

The Joomla Framework has its own MVC just like all frameworks. If you develop applications on that it is somewhat different than what you would do building an extension inside the CMS.
Building an extension on the Joomla CMS is different from building an application on the framework and I really would separate that out and figure out what you want. IF you want to build on the CMS because htat give you user management, authentication, cache etc and then you build on top of that, it is a different than than building a stand along application.
So you really need to figure out which it is you want to do.

Related

How to change a symfony project from mvc to client-server architecture?

I recently started learning PHP and Symfony 4 and I developed an app. Now my next task is to change the architecture of the project, from MVC to client-server. More exactly, I need to have my templates and controllers in an application and the business logic in another application. Any ideas how I can do this? I can't even figure out how to run 2 different symfony projects simultaneously.
A client-server application is an application base on a communication model call client-server: wiki
MVC is a way to develop and structure application: wiki
But i understand your needs. You want to keep a symfony app but you also want to put all the logic view and front end features into a separate app (like React or Vue)
Your Symfony App will still use MVC pattern, just you'll replace what the controller give to the view.
The best way is to turn the Symfony App into API with normalize view data like JSON or XML. Those data will feed your front app.
To achieve this you can use this bundle, which turn your model layers into API: API Platform

Silverstripe framework and cms used together and separately

Why would one build off with just the Silverstripe Framework only and not use the CMS and vice versa. For instance routing and menus can be handled with the cms included or not.
You can use the framework without using the CMS fine. The CMS without the framework however, is not possible.
There are cases, where you would have enough with just the framework, when you're building a backend application for a mobile app for example and all it has to do is provide data to that app. No need for the CMS in that case.

How would I use the Joomla Framework vs. creating Joomla extensions?

I have experience with Joomla and have modified and wrote some simple Joomla extensions. I don't have experience using one of the popular PHP frameworks (such as CakePHP), but I was thinking about using the Joomla framework because I'm familiar with Joomla. How would I use the Joomla framework for a software project instead of using regular Joomla and writing the extensions needed for it to extend it's capabilities? Thanks!
The basic idea is that you:
Get a copy of either the whole framework or just the packages you need+dependencies (from github or composer) or use the older copy that is shipped with the CMS,
Bootstrap your application (JApplicationWeb or JApplicationCli).
Write your code using the MVC structure provided.
The big difference with writing a totally independent application is that you are doing just that, you need to build everything in the application whereas in the CMS there are already a lot of things in place. (The good part of that is that you can make new code with no legacy concerns.) For example, if you look at the JIssues project you'll see that they had to think about things like authentication. So as you would expect writing a simple application is simple, writing a complex one is complex.
You can see many examples of framework applications around, ranging from the ones found in the CLI folder of your CMS installation to JIssues, and of course the three web applications in the CMS are all examples of applications on the framework.
The Joomla Framework is intended (among other things) to be the platform upon which you can build a web-application. The framework is like the frame of one of those motorcycles they build on "American Choppers." It provides the backdrop so that you can hit the ground thinking about your app without worrying about User Authentication, database connection, and a thousand other things like those that get in the way of bringing your app to its potential audience.
If you're trying to extend Joomla, the current edition is what you should be using.

Drupal as a CMS and CodeIgniter as a framework?

Is it possible to create a web application using Drupal as a CMS and CodeIgniter as a framework?
Drupal does not really need something like CI and vice versa. If you are building a web application in Drupal and you really feel the need to have something like CI, then you should simply write your entire application in CI.
Drupal is somewhat of a prebuild house for a web application. You install it, already have everything in place like a backend, caching, login-mechanism, etc. Next you add some modules, customize a theme and done. Just like decorating your living room or building an extra garage.
CI is more of a solid foundation to build a house on. It has some functionality but you need to write your own functionality if you want everything you need. You need to build walls and all that stuff but in the end you have had 100% control over just about anything.
I don't see the point of having 2 bases for a web applications. Just makes things more complicated imho. Just pick Drupal if you want a more extended base than just a framework. Or pick CI if you want to build everything up from "just a framework".
First decide whether you want to build a CMS or not.
If you want to build a CMS then you can choose Drupal or Expression Engine or any other CMS frameworks like Joomla. The advantage of using Expression Engine is it is built on top of Codeigniter and you can add custom modules using Codeigniter/php style of coding.
If you don't want to build a CMS, then since you are familiar with Codeigniter, build a web application using only Codeigniter

PHP - MVC within MVC

I'm learning about MVC frameworks, and I am about to start building a website that will eventually store all of my work. I plan to build a simple blog system using a MVC framework. But then I also want to host my other work within that MVC. For instance, if I have just created a simple todo list app that is also built with an MVC framework, I want to be host that on my portfolio too.
For instance, myportfolio.com will be the main app. myportfolio.com/otherapp will be a piece of work that I would like to host on my portfolio.
Can anybody provide any suggestions as to how this might be achieved, without having to port all models, views and controllers to a single main app?
Just make an exception on how the URL is handled. myportfolio.com/, myportfolio.com/foo, myportfolio.com/bar etc. are all handled by your MVC blogging system, only myportfolio.com/otherapp is handled by your otherapp. This can simply be achieved through RewriteRules in an .htaccess file, but how exactly depends on how exactly your framework works.

Categories