Page 1 of 1

PeecFW - new generation framework

Posted: Thu Nov 04, 2010 10:27 pm
by Peec
Image
PeecFW, the new framework based on other libraries and PHP 5.3 + best practices.

Key features
  • PHP 5.3 is needed it does not work with 5.2.X ( I see this as a feature )
  • Namespaces
  • OOP
  • Autoloading
  • Smarty
  • Doctrine ORM
  • Rest API
  • Module based
  • Module validation
  • Official Extension server and Client, Restful API connected.
  • Already lots of modules, i.e. complex rating widget, comment widget, admin panel, news posting/blog, static pages, link module, auth system (complex)
  • Spam control: RECaptcha
  • Very well documented! Including Wiki/ API docs and video tutorials.
  • Overriding compatible template files, themes can override every single tpl file in the core of PeecFW. This means, output is based on what theme you use. This also means that PeecFW can really be any type of application.
  • ... and lots of more features ...
Website: http://peecfw.org
WIKI: http://peecfw.org/wiki
GoogleCode including SVN: http://code.google.com/p/peecfw/
Forums / Community: http://peecfw.org/forum
Demo of default install: http://peecfw.org/demo




Do you want to be a developer of PeecFW?
Looking for developers that wants to get some grips on a framework called PeecFW under GPLV3. It's not paid work, but you will learn from it and get good references.

The framework is fully functional at this time and the default install is tuned for a CMS.
DB ORM: Doctrine, Template Engine: Smarty.
The framework is a pleasure to work with, I can tell.

The project is getting bigger and bigger and I look for new ideas and new developers with their own specialties. Send me an email @ kjelkenes@gmail.com if you are.

Re: PeecFW - new generation framework

Posted: Fri Nov 05, 2010 7:47 am
by alex.barylski
What makes this framework so special? Looks pretty much the same as most others, just slightly different. MAT??? That makes me nervous that you are trying to re-engineer/replace the accepted MVC architecture. Sounds as thought templates are the views (great - thats common) but the application is the framework and module is the controller, and business logic. Lots of cross cutting concerns, tangled code, difficult to test and refactor when compared to MVC, IMO.

Cheers,
Alex

Re: PeecFW - new generation framework

Posted: Fri Nov 05, 2010 6:44 pm
by Peec
PCSpectra wrote:What makes this framework so special? Looks pretty much the same as most others, just slightly different. MAT??? That makes me nervous that you are trying to re-engineer/replace the accepted MVC architecture. Sounds as thought templates are the views (great - thats common) but the application is the framework and module is the controller, and business logic. Lots of cross cutting concerns, tangled code, difficult to test and refactor when compared to MVC, IMO.

Cheers,
Alex

Thanks for the comment :)

MAT makes you nervous ? It's really just a new way of seeing a PHP Application.

The most intresting features that makes this special is that you can see the whole framework itself as a packaging manager for Linux, like yum ex:

- You are correct, Application is the framework & The libraries bundeled with the framework. Application can be seen as the Operative system, Linux ex.

- Modules are created by developers, it contains business logic and controller.

- Modules can access the Application(Framework) "Module API" and all the libraries.

- Modules can contain annotations Example:

Code: Select all

@ModuleAnnotation(api = 2.0, version = 1.0, author = "Petter Kjelkenes <kjelkenes@gmail.com>", reqModules = {'GTTS','Authentication'})
, the module will not work if not GTTS and Authentication module exist. Thereby, the module will allways work completly right out of the stack, and not generate mysterious errors.

- Modules can rely on other modules and you can access these modules. You can access other modules with

Code: Select all

Module::get('Modulename')->Amethod()
; . This makes it very easy to integrate.

- All models from the ORM is accessable globaly. Example: if a module adds User , UserGroup, and UserPermission. You can access these in any module. For example the Authenticaiton module contains user specific models(tables): User::isLoggedIn().

- A Module can contain everything, you can include whole libraries or a complete site in a single Module. Ofcourse, Many modules is better then a Module with 10000 lines of code.

- And then you have the Theme/Template (Main View). In the template you can override Module's templates (but not logic). You can also Access Modules right in the View - it makes it completly modular. In templates files you might for example do
As you can see, you may access an instance of the Module by using static method.

- You never have to worry about database changes. Update.php file will allways keep the database intact. Say if one module updated it's database structure. Users of the module just have to run update.php and they will get the new structure without any loss of data.

Code: Select all

{foreach from=Module::get('News')->getAllTags() item=tag}
{$tag}
{/foreach}

Re: PeecFW - new generation framework

Posted: Fri Nov 05, 2010 8:20 pm
by alex.barylski
The most intresting features that makes this special is that you can see the whole framework itself as a packaging manager for Linux, like yum ex:
This is an example of what you need to focus on, especially when marketing a CMS in an overly saturated market. While it's not enough to hook me in, it's got my interest piqued. :)
Modules are created by developers, it contains business logic and controller.
Drupal has a very similar architecture. Modules feel hackish and hookish, for good reason. But most are no more than a few hundred lines, and they get the job done by extending/overriding existing funcitonality. So while I hate it from a purist OOP/design geek perspective, it gets the job done faster than I could using Zend, CodeIgnitor, CakePHP or other lower-level frameworks.
As you can see, you may access an instance of the Module by using static method.
I wouldn't focus on that. Statics are considered by many (myself included) to be a bad practice - used sparingly if at all. A more dynamic approach is prefered, but if a framework uses statics or not is really irrelevant to the client/module developer, as maintenance of the core is rarely of concern. Statics do make global access a little easier, at the cost of more rigid code, more difficult to mock in unit tests, etc. This is another topic all togather, I just wanted to share my opinion, because if you focus on design specifics like that, you will receive a lot of negative feedback. Ask about statics in the theory and design forum here and you will see the discussion explode into heated debate.

All in all, I have not seen enough benefits to switch from using Drupal or Joomla, which are very mature and have 1000's of existing free, open modules. Joomla allows you to implement modules in a more MVC fashion, but Drupal (with it's system of hooks) is much more powerful in terms of reusing existing functionality. In combination with it's CCK and Views modules, you can really expedite the development of complex web sites.

You are clearly competing in a CMF/CMS category. So Drupal is likely your biggest competitor. I would focus on specific differences between this framework and Drupal.

Cheers,
Alex

Re: PeecFW - new generation framework

Posted: Sun Jan 23, 2011 3:58 pm
by Peec
Thank you for you words on this.

As a side note...

PeecFW has been heavily updated the last months since I created this post and has already been released in several versions of stable releases.

I recommend checking our new portal page, reading wiki and checking it out.

The project is just getting bigger and bigger and if someone is interested joining the development of PeecFW you're welcome too!

I have updated the main post, with new links and such important information.