I was trying develop a website with Cakephp and Joomla... But lately I've been founding a lot of barriers that create difficulties implementing things that would have been a lot easier if I only developped using one of the components.
So, in your point of view (as someone with more experience than me), is it worth to integrate CakePhp with a CMS?
If yes, what do you think its the best and easier CMS to integrate with?
Or use Croogo (http://croogo.org/)
A CakePHP CMS. I like Croogo's implementation more than Wildflower and the admin UI looks a bit similar to Wordpress.
From my point of view i wouldn't try. I think there would be a lot of crossover functionality and a lot of conflict. Either use Cake and write a CMS and the other elements you want or pick a CMS and develop the other elements you want as add-ins/plugins.
Joomla, Drupal, Xaraya, Expression-engine etc are all extensible so pick the one that is the best fit and has the ability to be extended or maybe already has plugins you require.
Another option would be to use Joomla as the CMS and Cake for the other element you want, keep them as separate entities but skin then identically and make the navigation seamless. In this case about the only thing you would need to integrate would be state.
There are some out there already that are on Cake from the ground up. Wildflower for example
http://wf.klevo.sk/
I have a cakephp site that is running wordpress in it's public_html/blog folder and it is doing great.
They are basically two separate sites, with two separate backend but it is fairly easy to create a model for the wordpress database if you want to pull in any data (eg. posts, pages, comments) and use it in the cakephp site.
As far a integrating the two I don't think it is a good idea if it needs to be a seamless experience for the backend users, most frontend users won't notice the difference because you can use the same style sheet and images.
If you want any more about my experiences with the combination let me know!
Cakeui is a rip of Croogo. Infinitas CMS could be what you're looking for if you want a full blown application or check this site for a list of good CakePHP Cms
As the developer of Croogo, I will be biased and recommend you to check it out at http://croogo.org. It comes with a web based installer too and you should be up and running in minutes.
Another CakePHP based CMS is Infinitas which has more features (including shopping cart). Both are based on the latest version of the framework (1.3 at the moment) and are actively developed.
I wrote a lot of CMS type apps with Cake and was thinking along the same lines. I've tried Joomla, Drupal and Wordpress but still had a dirty feeling in my mouth that I was failing by using Cake just for the sake of it or vice versa.
The most important common denominator, in my experience, is the back-end. It is re-used most often, but gets the least input.
Now I have built my own CMS with CakePHP. The intention is to 'opensource' it, but it's not quite ready yet.
I don't think it is worth the headache trying to combine, then maintain Cake and a 3rd party CMS. Save your best modules and components and build your own. The blog tutorial will give you a good head start and you can cherrypick what you like from other sources, rewriting it to suit your ideals. The benefit is you will then know the CMS inside out and have it working just the way you want. You'll learn a lot along the way as well.
Related
I have little by little built a website over the course of the past year and am now at a stage where the whole thing can go commercial, which means that I will face some tough questions regarding security, privacy, etc.
Since this is a situation where a hobby turned into a possible professional product, I am now rethinking how far I have to take this in order to really provide a product that is considered "safe" and stable.
The website was put together based on a Bootstrap 3 theme design, runs mostly on HTML, JavaScript, jQuery, PHP with Mysqli interactions and naturally has a SSL certificate. About a dozen plugins from various websites such as datatables, PHPmailer, jQuery-bootstrap-upload, blueimp gallery, etc. do the things I need them to do and I have always paid attention to properly mysqli_real_escape input values and write error handlers for all interactions. In short, there is no real framework here, things are more thrown together.
I am now being challenged that this is not considered a safe/stable solution and instead should recreate the whole website based on the CakePHP framework, which is something I am not familiar with and will take a fair amount of time to get used to and will definitely screw up my timeline.
So in short what I am asking is this: How important is it for a small and relatively simple website (i really dont do any complex code here...) to be built on a framework such as CakePHP in order to be perceived as safe and secure?
I understand there is no real answer to this, but I was just wondering whether building on an established framework like CakePHP is considered the only way to go or if a custom made framework is acceptable.
Thanks for the advice.
I was in your situation a couple years ago. I had started a site that, in the first year had about ~50 unique visitors. The second year I had about ~1500 unique visitors. What does this mean to a developer.
Optimize the response time - caching.
You need to optimize how you fetch data. Can you cache some queries? - CakePHP comes with caching Redis, Memcached etc.
Multiple Datasources - ElasticSearch, Mysql, Redis
Now that my website is huge, visitors might start to demand more functionality from the website. How do i deal with multiple datasources? CakePHP offers ways to interact with multiple datasources like ElasticSearch, Mysql, Redis
Code maintenance - Raw code vs a Framework
Do I need to google, and stackoverflow to reinvent the wheel? CakePHP comes with the best templating system and helpers.
Cutting down on development time.
If I am coding everything myself - I will spend more time developing. Using CakePHP I spend more time improving my website's data.
Decoupling
Does my data need to be managed by Cakephp, can I use Django, REST APIs etc. In the end I decoupled my website. I use Django to manage data entry, and CakePHP to present the data to visitors using Django REST framework.
No one can tell you definitely use CakePHP. However CakePHP3 , in my professional opinion, has a short learning curve. Using namespaces you can still use your current code in CakePHP and transition slowly into using CakePHP fully. CakePHP documentation is very good. You should be able to get a basic site wrkoing within an hour.
My employer runs a website with a homebrewed CMS that it has outgrown. I would prefer to use Django, but since everything is already in PHP, and I know the Cakephp framework, I'm going to just rebuild it in Cake. I've already done the gap analysis between the current site and the Cake version and it looks doable.
However, I need the site to have a CMS and don't want to put one together myself. I'd rather not reinvent the wheel. Croogo seems like the most actively developed and positively reviewed Cake CMS, so I'm leaning in that direction.
The trouble is I can't find any detailed documentation of how Croogo handles the database relative to Cake. I understand there is a direct link between the two, but is that enough for me to just trust that I can easily take an existing Cake site and magically integrate that with Croogo? I have a strong feeling that it won't be that simple.
I plan on to creating a fake croogo site to try to look behind the curtain, but I'd rather not have to reverse engineer the whole thing. So, does anyway know a bit about my scenario or have a resource they can point me to?
I doubt I'm the only one who wants to migrate an existing site to Croogo.
It really isn’t that difficult to build something in CakePHP. As long as your database is normalised, and you have your models set up correctly, you can easily “bake” something specific to your needs. User authentication with bcrypt-hashed password is easy to add, as is authentication and ACL.
I have a starting point that covers the above that I use for each CakePHP project, and can quickly build bespoke websites in CakePHP with little effort, without having to shoe-horn it into a CMS or plugin. Once you go down that road and start working around a particular CMS or plugin, you’ll find yourself quickly in the same position (outgrowing your chosen CMS/plugin’s capabilities) as opposed to building something that’s fit for purpose.
I've only touched the top of the iceberg of Joomla and cakePHP. There is so much to learn. But on top of learning I want to build something useful as well.
Joomla is the easiest to set up and is very agile if I wanted to get things up and running with concepts that are already in use out there. That is, I can install different components and extensions that are developed by other uses. The problem here is that I'm limited to other people's imagination and vision. What if I wanted something specific and no components or extension meets my needs, I would need to build my own. Which brings me to the question: -
Should I learn how to develop custom components/extensions in Joomla, or learn cakePHP to truly be capable of engineering my own application to suit all my needs?
Here is the application that I want to build through my learning - an integration of all of the below component each able to interact with one another:
A blog
A forum
A user participating recipe book
User calendar
Image gallery
Yes there is alot that I want to do, but it's all in the name of learning. I really want to be able to have an application which has an integration of all the above components which works smoothly together. For example, when a user submits a recipe or a blog this is written to their Calendar. Another example, user will be able to share their recipe/image gallery within their blog, without the reader having to navigate away. Another example, images can be tagged with recipe or ingredients of the recipe.
I'm starting on a clean slate, so I'm really looking for some opinion on which one I should stick to to achieve what I want to do. And which one will have a steeper learning curve?
For a forum, you could use Kunena.
Image Gallery, Blog and User Calendar should be easy enough to find.
As for the Recipe Book, if you are willing to purchase an extension then the ZOO app by Yootheme might be an idea, or you could allow users to submit standard Joomla articles and use a comments component such as JComment
I've used CakePHP on several projects in the past, and have more recently started using Ruby on Rails, but there's a new project I'm about to start that will require PHP. While refreshing myself on CakePHP I learned that there is a new framework called Lithium that is essentially what CakePHP 3 was going to be. It's being developed by a group of former core CakePHP devs.
I haven't found a whole lot of information about it since it's still under development status, but I was wondering if anyone knows (or has a link to) some information on what benefits it provides over CakePHP. Hopefully something a bit beyond the quick overview shown on the official site. I'm trying to decide whether to use CakePHP for my upcoming PHP project or to wait a bit for Lithium to release a non-development version and try that out.
Hope this answer doesn't come too late, (and as the lead developer of Lithium, I'm a little biased :-)), but I will say that this is a hard thing to sum up. Lithium is the culmination of over 4 years' experience building and working with CakePHP, and while it retains many of the same designs and conventions, it was built to correct CakePHP's many architectural flaws.
In brief:
Framework features are grouped into loosely-coupled "packages" that are easy to use independently.
Tangentially, everything in Lithium is a "library", including your application, and Lithium itself. Support for integrating 3rd-party libraries is vastly improved, and all classes are namespaced, so you can finally have a model called File.
It is very easy to swap out core classes with your own custom implementations.
Lithium has a unique "filter" system that allows you to hook into many methods in the framework, which allows you to design your applications in an aspect-oriented fashion. These features work together to make Lithium the most flexible PHP framework, bar none.
Everything is lazy-loaded, and the architecture has been designed for maximum performance.
Lithium supports the latest tech, especially new databases like CouchDB and MongoDB.
I could go on for a while, but that's the gist of it. If you have any more questions, feel free to drop by #li3 on Freenode, and someone will happily give you a tour.
There is very little documentation so far. Here are some brand-new slides from gwoo though, that might be a good overview:
http://www.slideshare.net/gwoo/li3-ocphp
See the Lithium about page in their wiki. It lists all the features it will provide.
http://rad-dev.org/lithium/wiki/about
I have a cakePhp application built, and now I'm creating a simple blog based on our activities (much like blog.stackoverflow.com).
What blogging plugins / software are most commonly used with CakePhp? Wordpress? lilblogs?
Just a few pointers in the right direction would be helpful.
You can install Wordpress, then if you want create CakePHP models which map to the Wordpress tables, then bake out the controllers etc if you really wanted to. I've done this a few times, as an easy way to get CakePHP to render recent wordpress articles.
Have a read about Models in the book, which will tell you how to build a custom model. http://book.cakephp.org/view/66/Models
There are a lot of applications specific to cakephp but you really should know about the resources that are available for free when you get into this venture.
Try these 10 Essential Blogging Tools for Every Blogger Should Use.