Differences Between PyroCMS and CodeIgniter - codeigniter

I am trying to learn how to make a site with PyroCMS. I know it is similar to CodeIgniter, but I have not worked on either in the past. I was wondering if anyone could tell me the differences, as most sites talking about PyroCMS will inevitably mention CodeIgniter as an explanation for anything potentially confusing about PyroCMS, but as they are tutorials about Pyro, they will not explain how to program in CodeIgniter. What is frustrating about this is they will not go into many core differences between the two, either, so it's not as easy as looking up a CodeIgniter tutorial and changing a few things.
I was wondering if anyone could tell me the main differences to watch out for that would be relevant for these tutorials. For example, the folder structure seems to be similar, but CodeIgniter has an Applications folder, while Pyro probably has another folder that does the same thing, but the Pyro tutorials don't say what that similar folder is.

PyroCMS is a CMS build on CodeIgniter. PyroCMS is used by individuals, small & medium-sized businesses, and large organizations worldwide to easily create & build a variety of websites & web-enabled applications.
CodeIgniter is an Application Development Framework - a toolkit - for people who build web sites using PHP. Its goal is to enable you to develop projects much faster than you could if you were writing code from scratch, by providing a rich set of libraries for commonly needed tasks, as well as a simple interface and logical structure to access these libraries. CodeIgniter lets you creatively focus on your project by minimizing the amount of code needed for a given task.
UPDATE:
One good overview for PyroCMS you can read here

PyroCMS is built using modular MVC, which means (in short) that each part of the system is its own micro-instance of MVC. This allows the system to be more flexible and cleanly organized than other CMS platforms. PyroCMS describes itself as a simple, flexible, community driven content management system.” And because PyroCMS is powered by CodeIgniter (at least for a bit longer, while the team migrates over to a Laravel backend), it is easy to learn, understand, and own.
CodeIgniter (CI) is one of popular php framework,it is very help full whenever we need to build large websites using php.It has so many libraries,helpers and plugins.But, CodeIgniter is not everything. We will not find 'engine generator' that can build page self. Several frameworks have features like that. For example, they can create web page (that to do basic Create, Read, Update, and Delete operation) automatically. CodeIgniter doesn't do this.
But codeigniter is very useful to decrease our code maximally without loosing functionalists.

Related

What is Joomla /libraries/cms?

I had an issues with some joomla api. The issue was that I was using the latest version of joomla and couldn't find where a joomla class, that was being called in my code, was derived . I searched the joomla api docs and found nothing relating to the class I was looking for.
I then stumbled across the refactoring change log for joomla and noticed that the function i was after had actually been moved from /libraries/joomla/form to libraries/cms/form.
Why would this be the case? There doesn't seem to be any reference to /libraries/cms in the api docs. How are we suppose to know that there are classes living there? Very confusing.
Since Joomla! 1.6 the code has been progressively split into the Joomla! CMS and the Joomla! Platform. You can see this separation in the github repository - a good place to also keep track of changes that are committed to both the CMS and the Platform. The simplest way is fork each repository and keep track of them.
As classes are updated they may be migrated to the /libraries/cms directory if they apply specifically to the CMS application (e.g. html forms are an application level function not a platform level).
I find the best place to hear about changes under discussion are in the respective Google Groups - Joomla! Platform Development and Joomla! CMS Development
[Edit]
Documentation of class's is the hardest thing to find for Joomla! CMS - there doesn't appear to be a current api listing for it, unlike the Platform API reference. Often it is just easier to read through the code.
It's also worth keeping a watch on the developer sub-site.
If you want to define excellence in CMS without coding, Joomla is the right option for you.Joomla the most preferred content management system among developers is an easy-to-use open source solution.If you want to define excellence in CMS without coding, Joomla is the right option for you. In this post, you will find few of its features that make the website development easy and most preferred option for developers.

Content Management System - PHP - Asp.Net

I am new to open source Content Management System tools. I got a website using Joomla for content management. Now, I am just thinking to Umbraco or Dotnetnuke (any Asp.net based) frameworks to use. Will it be a complex to do this migration. Can you suggest pros and cons for this idea.
Any help is appreciated. Thanks !
For Umbraco ...
Most of your client-side code like HTML, CSS and JavaScript can just be copied straight over, but as expected it may require some fiddling.
As for the data, it might be worth looking into the CMSImport module for Umbraco. As long as you can convert the source data into one of the formats recognised by the module, you should be able to upload your content with ease. I've had no personal experience with this module, but should be worth a shot.
It really depends on the size of the site and the functionality requirements. For smaller sites, it may be as easy as implementing the skin based on the original design (or, if a custom design isn't needed, selecting a free or 3rd party skin) and then manually migrating the content. For really large sites, you should be able to write scripts to migrate the content. I'm not aware of any products that do this. You'll also probably need to select some modules to use for things like forms.

Convert ASP .NET MVC 3 project to use CMS

I currently have a simple website that I want to convert to a CMS without losing any of the appearance or existing functionality. Also I would like to re-use my existing code for the site where possible and also make use of our in-house libraries and databases.
Orchard seems like a good bet because it also uses MVC 3 however it seems a bit bloated. There is a small project at atomicCMS which looks interesting. Has anyone used this?
Any hints or tips would be appreciated.
There should be a tag for this post called atomiccms but my account cannot create one.
There was a similar question, which you can find helpful.
Moving an ASP.NET MVC 3-based web application to Orchard is a fairly simple task. You just have to wrap it up in an Orchard module.
I have used both Orchard and N2 CMS. Both work on asp.net mvc.
I like the way Orchard is designed, but it is a rather steep learning curve. Also you will need to develop modules if you want to add your own custom functionallity.
After hearing a .netocks podcast on N2.CMS I decided to try it out for a recent project. It has a different approach/philosophy, you can think of it as a 'plugabble' CMS component. You basically keep your existing web app and can use CMS functionallity where it is required.
However, Orchard does have many more modules and skins available. I would definetly give N2.CMS a closer look, especially if you have an existing application.
In Orchard you must run as an orchard module (Mvc Area) and have no direct access to the root web.config. Depending on what you do in your existing app (wcf, etc...) this might be a limitation. With N2 cms you are not restricted in this manner.

codeigniter scalable folder structure

I've use symfony and now using codeigniter is there any folder structure
that can be used in scalable applications similar to symfony.
I want to make an application that will be divided in sub-apps and the sub-apps
will have their own modules.
Thanks.
What you are describing is called HMVC (Hierarchical Model View Controller). This means that an application is split up into modules (or as you described them, rather accurately, "sub-apps"). Sadly CodeIgniter does not support HMVC unmodified, however there is a drop-in extension for CodeIgniter which allows you to use a HMVC architecture. [Thanks Wesley]
Alternatively you can use a fork of CodeIgniter which is specifically designed for HMVC called Kohana Framework. The project was originally a fork but has now changed massively and is barely recognisable from the original CI project.
As far as modules go, the go-to solution for CI is the HMVC package:
https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc/wiki/Home
This is a "drop-in" solution; very easy to install, has been around for quite a long time, and is actively maintained.
Since Codeigniter tries to stay lightweight, you'll find that a lot of important things you need, like Auth or ORMs, are not built in, and you have to use third party code.
A lot of solutions hosted here: http://getsparks.org/packages/browse/latest
And the wiki: http://codeigniter.com/wiki/

CodeIgniter - modular?

I'm building several sites that need similar "modules." For example, the sites may have the exact same login system, forum, etc.
Is there a way I could build these modules once and just "drop" them in these various sites? Some of the challenges I see:
Keeping the code consistent in the various sites. Any changes made to a module should propagate to all of the sites using that module. I guess I need a way to upgrade?
Database: these functionality need to work as part of a bigger application. Maybe the module needs to define relationships with other tables in its respective site.
I'm sure there are more problems. I think I should be looking at this: https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc/wiki/Home, but I don't have any experience with it.
So, I'm looking for solutions, suggestions, or more problems to this idea.
You can create and use third party packages by adding them to the third party folder (which is new for CI 2). There is not much about it in the docs, but i found this.
http://codeigniter.com/user_guide/libraries/loader.html
You can autoload the third party packages in the autoload file. Packages can have their own controllers, models, views etc.
Interestingly, Phil Sturgeon wrote a bit (http://philsturgeon.co.uk/blog/2010/04/codeigniter-packages-modules) about packages not being modules (in the strict sense of the term), but you could probably use third party packages for what you need.
I would write them as libraries and use Git submodules to manage each module. Phil Sturgeon actually just wrote a great post about doing this in CodeIgniter.
If you're not using version control, I can't see an easy way to sync across all of your applications. Yes, HMVC will let you break apart your application into actual modules, but it won't help in syncing those modules across your applications.
Here is my question about 'Database communication in modular software'
that you may find useful.
I'm little bit familiar with Drupal, and as a modular application, I think it can be taken as good example of how relationships between modules should be defined.
Here is one good post about art-of-separation-of-concerns
I would like to hear if you have run into some concrete challenges, solutions and references concerning modular design in CI.

Resources