10 08 Jul
Author: Tomas Bartkus Filed under: Uncategorized     5 Comments »

OxyBase v1.0.0 – it is active project!

In one of Zend Framework mailing lists, people were wondering if this project is live, so answer is yes – we are live and this is active project. Actually we are preparing v1.0.0 which will have the same features set OxyBase has now, but in addition to that we are adding something that in PHP world is not used widely but I think it will be. I was implementing those technologies in my current project at work with my team and I wanted to test it first before creating and publishing anything. Because then it would be only theory-based-components that would fail in real world.

What I am talking here about is CQRS architecture, DDD approach, Event Sourcing. These are pretty new things and specially in PHP world, and I think we are those – maybe first ones who does it in PHP.

In new release OxyBase will have components that will help you to use those technologies, to speed up development and generally to create better quality software. Exact new features:

  • Framework for the CQRS architecture’s read side
  • Framework for the CQRS architecture’s write side
  • DDD, domain models base classes that will provide functionality for Event Sourcing
  • Bounded Context infrastructure components code generator, you will focus ONLY on the domain model, all the rest will be generated by OxyBase
  • Improved domains logic (from v1.0.0 domains are called bounded contexts aka sub-systems)
  • We will integrate external tools that will be used to handle database changes
  • We will include so called build scripts that are used for application deployment and you will be able easily customize those for your own needs

And much more, like documentation, samples etc.

Now one thing that I want to say is that with this release we are focusing on big projects with complex business logic. If you are looking for framework to build simple websites, this is not what you are looking for.

Release date is not set, but we plan to have it at the end of this summer.

I really hope you will enjoy using it as much as I enjoy it now in my daily work.

09 02 Dec
Author: Tomas Bartkus Filed under: News     4 Comments »

OxyBase v0.3.2 released!

After long time new version of OxyBase has beend released. This small release includes small changes like extended action helpers, new navigation page type and so on.
More important is that we have started to develop CMS on top of OxyBase and it gave us another real OxyBase use-case which brought lot of new ideas how to improve OxyBase.

You can download it here.

09 02 Dec
Author: Tomas Bartkus Filed under: OxyBase tutorials     No Comments »

OxyBase Installation

To install OxyBase you have to do the following:

  1. Download latest version from here
  2. Extract it to your web server document root
  3. Open configuration file, which is located in “/path_to_extracted_folder/application/config/config.xml” and change connection to database parameters
  4. Open browser and navigate to “http://locahost/<path to extracted folder>/public” or “http://locahost/<path to extracted folder>/public/admin”

Thats is it, now you are ready to start developing custom ZF+OxyBase based application.

09 17 Nov
Author: Tomas Bartkus Filed under: News, OxyAiml     1 Comment »

OxyAIML – new help system

OxyAIML  is another Oxy family system, which at the end will be prepared as separate OxyBase based systems domain. Main purpose of this domain will be act as help system, self-learning help system which can be used by users in a chat form.

Yes – chat. Users will be able to ask system, by typing normal sentences what they are looking for. For example, in CMS system you can have questions like “Where i can create new page? can you create it for me?”, “Can you show me users list page ?”, “How can i create ACL rule ?”, “What is last visitors ip?” and so on. If system does not know the answer it will try find it, if still it will not be able to do it, then you can teach it.

Other cool thing about it is that you can easily extend it. AIML is XML so you can add you own tags (features) and create plugins which will implement those features. For example you can add <email mail=”as@gmail.com”/> tag to system, and create a plugin which will send an email to this mail attribute address. Then you can instruct you help system (robot) to send email when pattern “send email to *” is detected.

For now its just experimental thing, but if it will show good results we will put much more effort into it.

This domain will implement AIML 1.0.1 standard, plus our own extensions.

09 14 Aug
Author: Tomas Bartkus Filed under: OxyBase     1 Comment »

First steps with OxyBase

Ok, so you have downloaded a fresh copy of OxyBase and you want to start using it? So let’s do it!

First of all, extract OxyBase-vX.X.rar to your web document root. You should have folder structure like image below shows:

OxyBase structure

This structure fulfils basic project needs. Here is the explanation what is what.

  • Application – here you will store all your application
  • Domains – all your application domains
  • Modules – all concrete domain modules
  • Documents – various documents related to concrete project
  • Html – we always have PSD file that must be converted to HTML
  • Public – this folder actually should be a document root, because it contains all public resources
  • Tools – all extra tools that you will need for project, like some php scripts to generate DB models etc.
  • UnitTests – unit tests folder, if your project is large one, you should consider using this directory

So now, when you have OxyBase in document root, got to Application/config folder and here you should find “config.recommended.xml”. Rename it to “config.xml” and open it. Find config node called “base_url” (//config/development/resources/layout/base_url) and change it to yours url. This could be something like “http://localhost/OxyBase-v0.3.1/public/” or if “public” folder is document root so “http://localhost/”. Now open your browser at this url and you should see and error that Doctrine can not connect to database, so open config.xml again and look for doctrine resource “dbparams” node and change database name, db user name, db password. Or you canis delete all <doctrine> … </doctrine> node if you do not need database connection.

That is it, you are ready to start developing. Open browser at “http://localhost/OxyBase-v0.3.1/public/” or whatever your document root is and you will see a welcome message “Frontend It is up and ready!“, add to uri “admin” (http://localhost/OxyBase-v0.3.1/public/admin) and you will get another message “Admin its up and running!“.

Setup is done now let’s star developing. I assume that you know Zend Framework and you know how to create module. If so, then all you have to know about OxyBase is only few things.
First of all, OxyBase has larger piece of grouping your code then module and it is called “domain“. So that is first thing you have to do when starting new project -  define your application domains. By default OxyBase has two domains – “Frontend” and “Admin“, but if you need another or you just don’t like the name, you can rename it or create a new folder in domains folder.
When you have your domains, you can start creating modules. OxyBase by default has one “default” module. This module can be an example for your what structure is required and how controllers, models should look like.
OxyBase module is the same as Zend Framework module, just our module components has not only module prefix, but also <domain> prefix. So our controllers are named like <domain>_<module>_<cnameController> (Frontend_Default_IndexController), models are named <domain>_<module>_Model_Standard, plugins <domain>_<module>_Plugin_Standard and so on. And everything else, that is related with coding, is the same as in Zend Framework.

Another small difference is url that points to some resource. In ZF modular structure when you want to dispatch some action you do it like “http://localhost/module/controller/action“, in OxyBase we add one more parameter in front of all, so in our environment request uri looks like:

  • “http://localhost/admin/module/controller/action”
  • “http://localhost/frontend/module/controller/action”
  • “http://localhost/frontend/module/controller/action/param/value”

And that is it, that is all you have to know about OxyBase that you could start developing. If you are good in Zend Framework then you will know what to do next, if not read my next post about how to develop modules.