How to use your account safely

Obviously, there is no one single solution that would satisfy everyone’s needs; an architecture is always a trade-off. I want to create a framework, originally aimed at RAD of web games. Target language is PHP, although the architecture should be widely applicable.

Goals that I have in head for this framework are: flexibility in ways you can achieve the result; maximal comfort for developers; connecting modules like LEGO® blocks; many types of input, many types of output, one format for processing.

The goals that are not a priority are speed, enterprise use and making money. It’s supposed to be an open source project.

The cornerstone of this design is that all content, before transformation, is processed in XML (idea based on EAI system I’ve worked with, eGate). The data abstraction layer – hopefully some smart ORM – is not important now. The output will be generated using XSLT or any other custom modules, for virtually any client – HTML for old browsers, XHTML/HTML5 for modern browsers, simple HTML for mobile clients, XML for AJAX/XMLRPC, etc.

Main reasons for using XML are:

it’s a well-known standard
existing tools like XPath, SimpleXML and DOM for navigating and modifying the content
XSLT providing a powerful and unified way to transform the code into any tag soup
I find the XML markup very easily readable, therefore I don’t think that advantages of JSON or YAML make a difference here
The content can be stacked easily, and it the order of the content doesn’t really matter as long as it’s transformed correctly with XSLT
The page generation process would consist of these phases:

Pre-processing: initializing modules, processing GPCS data, applying default [XML] templates
Processing/generation: main part of business logic, generating the bloated XML with maximum data (although hopefully optimized not to generate balast)
Processing: some additional business logic, e.g. cutting down some of the markup, preparing for transformation, reporting, statistics, etc.
Post-processing: parsing XML through the transformation engine (most probably just XSLT), output.
The content would be generated with a lot of meta-data (e.g. tags, permissions, importance, necessity, aimed output type), which would be stripped down during post-processing.

So, my question is: except for speed, what is the downfall of this solution? Where it could go wrong both during the development/maintenance of the framework, and its applications? What are the downsides of this architecture?

2 ANSWERS

February 13, 2017 at 10:33 am David Jackson

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident.

#activate_pack, .topic-pack {
    background-color: #1ABC9C;
    color:#fff;
    padding:10px 20px;
    cursor:pointer;
    display: inline-block;
}
.knowledge .breadcrumbs {
    background-color: #00a4ef;
    color: #ffffff;
    height: 70px;
    width: 100%;
}

Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident.

Thanks

February 13, 2017 at 10:40 am David Jackson

Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident.

Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident.

Thanks

Attachments:
You must be logged in to view attached files.
February 16, 2017 at 10:27 am David Jackson

XSLT can be bulky to manage, and essentially adds an extra programming language that developers would have to work in (at least if I understand your description correctly). My experience has been that relatively few people know it, and even fewer can make it do what they want.

Viewing 3 replies - 1 through 3 (of 3 total)

You must be logged in to reply to this topic.