Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this question
Facing a need for a single CMS we can use for rapid deployment of customized CMS solutions, I am wondering if anyone can share any constructive feedback, experiences, pros and cons of this, seemingly powerful, piece of software.
The whole story/marketing pitch sounds solid, and from a quick glance at the CMS itself things seem to be put together in a coherent and pretty flexible way. I am however looking for first hand experiences as they usually reflect the real situation way better than anything else.
If you have used (or are still using) ezPublish for something, I would love to hear about it.
Thanks!
Having in mind all good points of eZ Publish you should be aware of bad ones. From programmer point of view: Most of the system was written in php4, and was rewritten in a hurry, to make it works with php5. Lack of design patterns and object oriented approach in kernel, makes system hard to develope with, and to read its code. To add some heavier functionality not supplied by CMS, you can use extension system. Problem is programming extensions is slow and painful (documentation only in code). There is quite good technical documentation on www.ez.no but most of it is for webdesigners.
I'v used ezPublish for quite a while and I can say its very flexible and allows a range of different solutions to quickly be developed with it. The ability to add content types is what makes it awesome.
It can be a little bit slow at times, but with proper caching set up it can also be really fast.
The biggest downside: The learning curve is very steep and long, and there aren't enough knowledgeable eZ Publish developers available in North America.
However, from the beginning I've been fond of its overall architecture, which seems to be elegant, flexible and generally well thought-out. Over time, some things have been bolted on in ways that don't necessarily fit perfectly. But it's pretty amazing what you can accomplish with the core functionality, and overriding and extending the core is clean and maintains good separation.
I would say that if you are in it for the long haul and can afford to train your developers (really, you can't afford not to) then eZ Publish is a reasonably good choice. Once you figure out the platform and develop your own kit of tools, it should be fairly quick to deploy custom solutions.
I will also concur with an earlier answer, that the class system really shines. Caching is always an issue, so don't forget to learn the caching system. Your site can fly on eZ Publish, but you must understand caching to make it do so!
I have Used eZ Publish for some years now.
It was quite difficult to learn it at first and understanding the structure, but when you are on the way then everything would be simple and fast, especially with their new kernel on Symfony2.
I would recommend using eZPublish 5, as I suppose you no longer talk about the older versions, only if you have at least some basic knowledge of eZ version4. That is because the admin is still using the legacy and all the settings are done using .ini files which you really have to know. Nothing hard, but learning curve is definitely steep.
Also using eZFlow will require working with both .ini and .yml configuration files, so you need to understand both config structures.
Further on, as I have been at a presentation for the new admin, which unfortunately will be using YUI as JS framework, and having seen the release plan for this year, I can say you will have to keep the legacy admin if you want to benefit of all the functionalities as there is an enormous amount of work to be done to have everything migrated on Symfony 2.
Even with the announcement of eZPlatform(eZ 6), I am not that confident we will have a really STABLE version anywhere this year.
Related
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
We are planing to make a new system to replace our 10 year old system, in doing so we are considering to make the new system in Laravel. Now I have concerns I will have to hack the whole thing and make it a mess to make it work as we wish. So I am asking if someone knows a better solution for it, or can tell that it is already made in it.
we need:
ftp, sftp, which are cron triggered.
mail daemon which is cron triggered.
easy way to implement multiple factories and easily to encapsulate them (i am thinking to use the model part for it)
easy possibility to switch the global database connection
inter server connectivity
caching functionality like memcache built into the database layer and object layer
possibility to tell the framework which pulls get stored in cache
an easy Templating system, ye i know i can make one easy, but some which is already done in Laravel would help :)
we have our own servers so module installations are not a problem.
Unit test implementations on factory based systems.
All suggestions are welcome, if i am by any chance in the wrong stack overflow part please just say in which section i should move it. Thank you in advance for all feedback :)
UPDATE->
The requierements above are minimum requirements for us/me to consider the framework good enough. If somone is able to point to tutorials how to do the stuff with laravel. Please provide links. In special Unit testing Laravel controllers, cron setup from Laravel... and so on..
This is truly a question only to be answered by you and your team (in terms of effectiveness, language understanding and framework pattern knowledge).
Laravel can surely withstand such projects and migrations but most of the frameworks out there can do, personally I've been using Laravel and Cakephp in terms of PHP frameworks and find both of them quick, efficient and easy to use (with Laravel code a bit more easily to read through large projects).
On the other hand there are frameworks out there which efficiently do what you need quicker and easier than most php frameworks, django (python) is one example, stable, lightning fast development (if you are already familiar with python concepts) and proven (instagram, disqus etc).
Nearly all frameworks have known RDBMS support, but are a bit back in terms of NoSQL support (yet you can find plenty of projects that provide support for NoSQL), Laravel can easily switch DB's but compared to the "DB router" feature of Django I believe it feels a bit behind on how much detail has been put to it.
Laravel is a beautiful framework, but this isn't a stackoverflow type question. None of us will be able to really give good advice, other than say Laravel is good.
Let me refine the question. I am not asking for opinion if i am using the right framework, i need some hard data.
I already know Zend 2 (working with it 1.5 years) and it is to bulky and to developer footprint heavy for our project(our logic would have to be developed into the damn thing... just not practical).
I already work with Cake, and it is to simple for us,
Symphony i know to, but it has BIG problems with our structures.
Code igniter is.... to simple... and so on and on...
I am currently reading trough Code Bright Book for introduction of the possibility's from Laravel. And i am half trough. But i have not found anything that tells me it can help my project with the points which are pointed out.
So i am asking again, i need examples of the points implementations in its simplest way for comparison. except in Zend, Code Igniter and Symphony.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed last year.
Improve this question
Ok, magento is new to me, and in fact ecommerce site development itself is new.
Magento seems to be extremely difficult to get to grips with - I have spent 3 days now going round I'm circles trying to create a custom theme and modules.
The documentation is poor, the code and structure appears obfuscated - when will it get easier?!
Are there any specific tips or advice that you can offer for learning magento properly ?
For any other developers out there - how long (full time development) did it take to start to make sense of magento and to get things done quickly?
AS Phliplip said, have a understanding of the MVC pattern and the way Zend Framework implements those. Especially the Controller part, Model and View are handled differently.
Make sure you use a descent editor (e.g. eclipse+pdt) which allows you to click at any function and it will show you the source as well as setting up xDebug so you can travel though some code while its running and see the values of the variables.
Magento gets controlled by many config.xml files in each module which get merged to one big xml. So you need to understand how you setup a module and what Mage::getModule('yourmodul/xx_yyy') does.
as well es Mage::getResourceModule(), Mage::helper(), Mage::getBlock()
Make sure you are 100% familiar with the class Varien_Object,... and become a fan of it :)
Try to understand the Magento Collection class which basicly wraps any mysql query returning more then one result
Get familiar with a the database eav model
When you are planning on altering the database,... you should make sure you understand the magento installer.
There is lot more....
it took me I don't know 6 month to get a good understanding of it...
The first step towards getting anything done in Magento is to read the Magento Design Guide.
Once you are familiar with the XML/Block system, you can make changes to the design portion very easily. Once you're comfortable with that, you're going to want to take a look at every folder in your base Magento install. Each folder has a purpose, and having an understanding of what each one's function within Magento will help you when you decide to start making modules.
Alan Storm has a great tutorial for your first module here. I'd read that carefully and get the books that he suggested; they are great resources.
Finally, start tracing functions through the code. I basically have grep -R available at all times to find out where methods are defined so I can better understand what their capabilities are. Because of the size of Magento, sometimes that's the best way to find answers.
Good luck!
Magento is build upon Zend Framework. I think basic knowledge of ZF will get you af good head start.
Try have a look at 'ZendFramework in Action'. That's where i started with ZF.
ZFiA will probably give you a good insight into the MVC-pattern and directory-structure of ZF. This you should be able to project onto Magento.
And i'm currently working on 2 ZF projects. I have yet to do a Magento shop, but it's in the commings.
Played around with Magento, right after the release. And must say that there were lots problems just to get it to install and to perform good. So haven't been playing with it since. It's my impression that it's evolved since then, and the performance issues should be ironned out. Still not an application you should run on a 1-buck shared hosting.
Magento can be a challenging platform to learn, but with the right tips, it can be a breeze. Here are some of the best tips for mastering Magento:
Start with the basics. Make sure you have a strong understanding of the fundamentals before moving on to more complicated concepts.
Use online resources. There are plenty of helpful tutorials and videos available online that can guide you through the learning process step by step.
Practice, practice, practice! The more you Mmcgbl work with Magento, the easier it will become to use and understand.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
First, let me apologize for Yet Another Framework Question. But I think this is different enough from the usual "What framework should I choose?" to warrant it.
Here's my situation: For the past year I've been using a custom framework. It's been used on everything from small CMS's to larger sites and even a mid sized social network. It's worked great but I now see its limitations. So, I've decided to switch to a 3rd party framework. The simpler frameworks (CI, Kohana, Cake) seem too inflexible from what I've heard - so this led me towards ZF. But, I've also heard that ZF may be too flexible and thus hard to work with. What further complicates this is that I'm looking for a one-size-fits-all solution; I need a setup that works on small projects to very large projects. I am the main developer, but I need my partner to eventually be able to learn the system and help with the less complicated programming tasks.
I've researched Doctrine and I love it. So I'm leaning towards Symfony (with Doctrine) as the main framework with ZF to fill in the gaps. Plus, I need the ability to add my own pieces to this platform parallel to any 3rd party libraries. I hope this will provide me with a solid, extensible platform, as we really can't afford to be switching out frameworks every few projects.
I'm looking for advice from others who have been in the same situation as I am in now. Any advice would be greatly appreciated.
Edit: I've posted my solution below in hopes of helping other people in the same situation
After some research I've decided to go with Symfony. Here are my reasons:
Less verbose than ZF
Seems very customizable due to usage of YAML files (yet I never feel overwhelmed by them)
Autoloading of custom classes doesn't require any extra work like in ZF (albeit it's not hard to set up in ZF)
The developer toolbar is great, and they're adding some nice features to it in ver 1.3
The ability to use pieces from other frameworks (ZF, eZComponents) makes me feel confident that I won't have trouble finding what I need
Comes bundled with Doctrine and is very easy to set up (in fact Doctrine will become the default ORM in ver 1.3)
It seems like there's a much larger community for Symfony. Google "symfony tutorials" versus "zend framework tutorials" and you'll see a massive difference in the number of results
Plenty of documentation: tutorials (the Jobeet tutorial so far is very good), API references, and a more human readable description of the framework and its underlying principles
Yahoo! has used it for a few of their own projects - it's nice to see a Big Name back a framework IMHO
Edit: For the sake of hopefully helping others in the same situation, here are some things I don't like about Symfony:
Does not follow the PEAR naming scheme (ZF does)
Internal classes begin with "sf". This is contrary to the practice of capitalizing the first letter of the class name
Variables and functions are written_like_this, yet class methods are camelCased - this seems sloppy to me
These are all cosmetic issues though; things that bother me because I like to do things my way. I realize that whenever you use third party software you must be willing to make some sacrifices.
ZF is certainly a nice framework, but I feel using Symfony as the primary framework and extending it with pieces of ZF is the best choice for me and my team.
Edit
It's been 2 years since originally posting this, and since it's still getting hits I thought I'd give a quick update. I probably built about 25 - 30 projects using symfony 1.x in the last 2 years, and I'm very happy with how it performed. As a full stack MVC framework, partnered with Doctrine, it handled almost everything I threw at it. And whatever it couldn't handle, it was easy to add my own custom code. In fact, that's what I love most about symfony - how easy it is to extend. I ended up building a bunch of plugins and Doctrine behaviors that greatly reduced development time. And the admin generator tools have been a god-send. I'm still using symfony 1.4 for a few projects here and there, but have decided to mainly focus now on using Symfony2. It's a completely different beast than symfony 1, but I really appreciate its architecture. More importantly, it seems even easier to extend than symfony 1.x. I do miss some of 1.x's features, but that's the sacrafice you have to make when switching frameworks.
I like using ZF because of strong conventions. You can be sure, that everything will be as you expect it. Class names, function names, variable names, directory structure, ... all of it. It really speeds up the development if you stick to it. If you adapt it it's more like looking into your own code, when checking the ZF internals ;)
Let's be honest. ZF is not fast. Not as fast as Nette, CodeIgniter, etc. But the difference is that there is a class for everything. And if there is not, there is a class you can extend or interface you can implement.
All the other frameworks try to gain on the "wow" effect (blog in 30secs, twitter in 2 hours, etc). But when develioping a real life application, you realize, that it's the use at will, flexible and extensive architecture, that you need.
Zend Framework: Huge, Flexible, Modular.
I'd use only if am building a enterprise big ultra system.
But, I'm using Yii Framework and I like it.
Because: Very Fast, Simple, Widgets (easy to reuse component, this is very nice).
Yii it's easer to use, because is not a enterprise framework, and have all Basic features you really need in most cases.
*
EDIT: Now that I nearly understand HOW
to improve the ZendFramework using
your own code (as asked here Adding
3rd Party lib to Zend and here
Using 3rd Party lib within Zend),
I switched back to ZendFramework. I
currently design my application and
each day which I work and test
anything with ZendFramework it gets
more and more familiar and it easily
quickens my developement. My advise:
Use ZendFramework.
*
I have currently the same problem:
My story:
I was using CakePHP until I wanted to expand my project's size.
CakePHP was not as flexible as I wanted it to be.
So i tried to use ZendFramework.
The very first time I read the 'QuickStart' guide, i was a little bit afraid of having that much files for a simple guestbook application.
After a time of 'playing' with the ZendFramework I decided to use ZF as a 3rd party lib in my own custom framework.
The problem is, IF you use Zend's MVC components you might be forced to use 30% of the whole framework, because the MVC components are one of the biggest part of the ZF.
I mean if I use that much of a framework WHY shouldn't you use the rest, too?
After that, I decided to write my COMPLETE custom framework without using ZendFramework as 3rd party lib.
Now I am sitting in front of mountains of papers, full of sketches about code design.
I will keep you up to date about my further decisions.
I honestly think it really depends on your style. There's no end all be all answer to this question.
ZF relies heavily on classic and proven design principles. It's also very extensible, but requires more "configuration" than "convention". I personally do not trust 3rd party code by nature, so I'm a fan of more verbosity, for the sake of being more familiar with the technology I'm working with. But that's just me.
I've also used CakePHP successfully and two other frameworks proprietary to a company I worked for with great success. They're all trying to do similar things, just pick what feels best for you.
I've personally used CakePHP successfully for both large and small projects, however it is often difficult to make it budge the way you want. My reasons for using Cake continue to reside in the fact that the community support is top notch, the security updates are often, and they do not force meta-packages (such as unit testing) upon you (although this is bundled, you can just bin it if you're not interested in using the built in package).
Altogether, it's made a nice system for me over the past few months, however I have heard time and time again that Symphony is fantastic, so you may perhaps be on the money with your first thoughts. With NetBeans support for Symphony in the pipeline, I may too find the need to switch before long.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
I am building a website and need to use a CMS.
If I use an already made CMS, I need to be able to extend it easily.
Is there a specific CMS that you recommend or should I make my own?
OpenSourceCMS is an excellent place to start. They offer demos, user rankings, etc. of many different CMS systems.
You can also find relevant questions here on stackoverflow by searching for "php cms".
Personally, I like Drupal, MODx and Concrete5. Drupal and MODx because of their extensibility, Concrete5 because of its simplicity.
I have found SilverStripe to be quite useful, used it on an intranet project - built in authorization, nice content editing built in, easy templating language, workflow, content versioning. I also like that they have good documentation and Help. The Demo is also impressive.
http://drupal.org/ comes highly recommended.
good community and plugins/addons.
Josh
If you are looking for simplicity try Concrete5 or MODx. They are both easy to install and work with.
Had the opportunity to use Joomla, there are many plugins/templates/tutorials and a few books out there. If you are good in php you will find it very easy to create your own plugins or extend existing functionality. However big drawbacks are the many exploits and some limitations (only mysql as a database, versioning of articles, detailed permissions, multilingual support) that hopefully will all be fixed with Joomla 1.6.
The beauty of most good packages is it won't hurt you too much to get dirty with a few of the well managed and easily installed packages to see what's best for you.
I have stumbled through Drupal and ended up on Joomla. I found Drupal to be highly powerful and technical. Joomla is the same, but seems to do straight-forward stuff a bit easier. Both work quite well.
If your application is very simple, Concrete5 is definitely worth looking at. I go with Joomla for most projects right now and am keeping a close eye on Concrete5...
Let us know what you went with and why!
I really like SilverStripe's admin and extendability.
Right now, I'm running http://gallery1401.com/ on SilverStripe.
It has nice image upload, and custom fields, and rails-like associations and data management.
Runs on a typical php/mysql stack, with strictly object-oriented architecture.
I'm surprised no one mentioned ExpressionEngine. It is not free (that's probably why) but it's PHP, has a thriving community, a lot of plugins (good ones not free, but a php programmer could consider this a possible revenue source). It's built on a PHP framework - Code Ignitor.
I'm playing with Concrete5 right now - I really love the in page editing. It's MVC based, extensible. Simpler (so far) than EE, EE is easy to use and template, simpler than Drupal. Drupal is amazingly powerful, but as others have noted there is a steep learning curve. Even if you're a php whiz you have to learn "the Drupal way" to template, to code, everything, it's really quite involved. That said, Drupal can really do anything and powers some very robust and high profile sites and has a huge community.
UDPATE: MODX Revolution (v2) is no longer "brand spankin' new. Use v2 instead of v1.
If integrating custom design is a big factor I highly recommend using MODx (v1 since v2 is still brand spankin' new). It's loved a lot by designers and developers alike. I have heard good things about EE, concrete5 and SilverStripe though. I really only know MODx though. The design integration rules (no themes to mess with like many other CMSs). Very extendable for PHP ninjas as well and the community is SUPER helpful and friendly. Hope this helps someone as I know I'm replying a year and a half later from the last post!
its sad that no one seems to include wordpress in these discussion
my recomandation is wordpress.org but it also can be wordpress MU and MU in combination with buddypress
one great advantage of wordpress is plugins
it has if not the most extensive plugin selection
and on top of that the same goes for its template selection
please do check them out
I haven't been impressed by CMSses out so far, but Concrete5 and MODx are definitely two to check out.
I'd like to see the documentation and community of Concrete5 grow into something as big as Joomla or Drupal. That will only happen with more users, but it's good enough to get started with right now.
If you want to go the "Rails way", you may want to check out CakePHP, a rapid development framework that adapts most of Rails' functionalities. Also VERY easy to extend!
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
which is the best framework to develop a community web site.
For the MVC architecture, is there any disadvantage while using frameworks.
or is it better to develop that in a pure php with OOPs concept?
thanks in advance!!
Do you want an MVC framework or a CMS?
For MVC frameworks, there isn't simply the best. It's always about what you need, but here is a short overview of the most common frameworks.
If you're looking for a CMS I'd suggest Drupal for community like functionality.
or is it better to develop that in a
pure php with OOPs concept?
If you really need that last little bit of speed, do it in pure php...
I'd suggest, use a good stable Framework like CakePHP, symfony or CodeIgniter. It'll help you avoid a lot of mistakes you'd make if you do it all by yourself and it makes development (not the page) a lot faster.
I switched from pure PHP to Django (python) and I cannot tell you enough good stuff about it. Using an ORM and automatic admin system was key for me and have saved me tons and tons of tedious work.
If you don't want to learn a new language there're probably some very nice frameworks for PHP as well.
Drupal is a very easy to use and extendable framework for building communities and MVC apps in PHP.
For simple sites you can try CMS, such as Joomla or Drupal or even others, wich will let you concentrate more on content than on programming/modeling.
As for MVC, frameworks definitely help, you do not need reinvent the wheel. Escaping strings, session handling, db access, views templating, web forms and other important stuff is done in formalized, dev community proven/tested ways. More to say, frameworks leave you with the freedom option to enhance functionality (e.g. inheriting/overriding/adding classes). So try download some of them, try a simple app, take a look at the docs, and decide if it suits your needs.
Personally, I have a good opinion of Kohana framework.
take a look on elgg , this is new and has lot's of inbuilt things, and easly extensible.
I think for a community-site the idea/concept of the site is much more important than the technology.
Many technologies are mature for web-development. I would pick the one, you most comfortable with. From the features they aren't very different and if the technology is actively developed, you can be sure, that it will adapt future ideas.
I suggest you use some MVC framework. CMS systems are nice, but a time will come when you'll want to do something outside of the box and you will have to create plugins. Now, all this is nice until you have to upgrade. And you do have to upgrade because security issues arise all the time.
Anyway, here are some frameworks that are IMHO worth considering. It's important to use one which is known and popular because:
more users will be able to answer your begginer questions
more users mean bugs are found and fixed faster
there is also more user-generated content, examples and documentation
CodeIgniter and its fork Kohana
CI has excellent documentation, a few very good tutorial videos and it's easy to be up and running in a very short time.
Yii framework
Has excellent documentation, and is very powerful. Also, it is very fast, and beats most other frameworks on speed tests by a large margin. It takes time to learn to use it well, mostly because there aren't enough examples, and you don't have such great video tutorials like CodeIgniter does.
CakePHP
I find it a little bit too restrictive (file naming, placing, etc.) but this could be good for a complete newbie, or a team (less chance for maverick developers to mess things up).
Yii comes with a full stack of features, including MVC, DAO/ActiveRecord, I18N/L10N, caching, jQuery-based AJAX support, authentication and role-based access control, scaffolding, input validation, widgets, events, theming, Web services, and so on.
Yii is easy to use and is extremely flexible and extensible. Id recommend to check its extensions like backvendor http://www.yiiframework.com/extension/backvendor/ or coco http://www.yiiframework.com/extension/coco/ Ive tried backvendor, it really helps to save much time on the first stages.