Powerful and innovative web framework

Short summary


UCMS is a milestone in web development

Introduction

UCMS is a new revolutionary PHP framework / CMS for the development of internationalized enterprise web applications.

One of the key features is the awesome template engine which is based on the Twig syntax. This template engine is a completely new JavaScript-like programming language.

Due to the power of this new template language, things can be programmed that previously seemed completely impossible.

JavaScript-like programming
  • {% set my_filter = function( number ) {
  • return number & 1
  • }
  • %}
  • <script>
  • var odd_numbers = {{
  • [1, 2, 3].\array_filter(
  • my_filter
  • )
  • }}
  • </script>

Be ahead of the times

The new template language includes many new programming paradigms such as a foreign function interface, anonymous functions, callbacks, dynamic tags, function expressions, method chaining, currying and scriptability.

Thanks to the hard work of a brilliant programmer, the new template language is an almighty programming language that offers many new solutions and makes impossible things possible.

You can only get this new technology here because it would take years to develop something similar.

Dynamic Tags
  • {% addtag leetspeak as function( words ) {
  • return words.\strtr(
  • 'leet', '1337'
  • )
  • }
  • %}
  • {% leetspeak %}
  • And God said, 'Let there be light'
  • and there was light.
  • {% endleetspeak %}
Leetspeak
  • And God said, 'L37 7h3r3 b3 1igh7'
  • and 7h3r3 was 1igh7.

Programming without limits

You can call any function or method directly from your templates, no matter if static or object-oriented.

And you can even access your class constants and PHP constants directly.

Access any class or function
  • {% set api = new \Your\Api( ucms.database ) %}
  • {{
  • api.doSomething('Hello World',
  • api::ANY_CONSTANT
  • )
  • }}

Programming at a higher level

With the new Twig you can reference any function like in JavaScript, no matter if it is a PHP-internal function, an Object method, a static function in a class or a template function.

Additionally, any PHP internal function, any template function and any template macro can be chained like in JavaScript, so that you can write very readable code that is easy to understand.

Reference any function
  • {% set
  • message = "Hello World \u263a",
  • byteLength = \strlen,
  • charLength = \mb_strlen
  • %}
  • Byte length: {{ message.byteLength() }}
  • Char length: {{ message.charLength() }}
Chain any function
  • Hello {{ 'dlrow'.\strrev().\ucfirst() }}

Turing completeness

The new template language is a programming language with Turing completeness.

You can use all control structures and paradigms as in any other modern programming language.

The templates and expressions are compiled into an abstract syntax tree. The compiler can detect and optimize static expressions so that, for example, 1 + 1 is stored as 2 in the abstract syntax tree.

This new revolutionary template language combines the advantages of PHP, JavaScript and the Twig syntax, in a new incredible and almighty programming language.

Full script-ability
  • {% script %}
  • function calcPi(accuracy = 1000)
  • {
  • pi = 4
  • hi = 4
  • lo = 3
  • ng = true
  • for(i = 0; i < accuracy; i++)
  • {
  • pi += ng ? -(hi / lo) : hi / lo
  • lo += 2
  • ng = !ng
  • }
  • return pi
  • }
  • {% endscript %}

Translations with context

Translatable strings can be defined very easy and extracted automatically as .po file.

A translation context, expressions, plural forms and translator comments can also be used.

Translations with links and formatting can be created in combination with the markdown tag, and even internationalized PDF documents are possible.

It has never been so easy to create internationalized applications.

SimpleExample.twig
  • {% context 'Views.Application.Example' %}
  • {%- translate -%}
  • Hello world!
  • {%- endtranslate %}
  • {% endcontext %}
Application.po
  • #: Views/Application/SimpleExample.twig:2
  • msgctxt "Views.Application.Example"
  • msgid "Hello world!"
  • msgstr "Hello world!"

Template based PDF generator

Our system has a template based PDF generator that makes it easier than ever before to create internationalized business documents.

We have implemented a lot of features in this generator, for example, UTF-8 and Unicode support, TTF-Fonts, many filters, and the use of arbitrary units such as em, px, pt, mm, cm, in and %.

And that's just a small part of the functions of the PDF Generator.

Business PDF
  • <?xml version="1.0" encoding="UTF-8" ?>
  • <pdf size="A4">
  • <header>
  • <p font-size="2em">
  • <strong>
  • {%- trans 'Invoice' -%}
  • </strong>
  • </p>
  • </header>
  • <body>
  • <rotate angle="90" x="50%" y="50%">
  • <text x="50%" y="50%">
  • {%- trans 'Order number:' -%}
  • </text>
  • </rotate>
  • </body>
  • </pdf>

Faster than pure php code

Great care has been taken not to add unnecessary ballast to the code.

The UCMS kernel can handle requests without executing database queries. The only queries that need to be executed are those of your application.

The template engine can cache generated content, resulting in extremely fast processing that is even faster than PHP code.

If the cache tag was used wisely then the UCMS is even on a Raspberry Pi faster than any other system on a real web server.

Cache tag
  • {% cache %}
  • {{
  • yourApi.getItems().renderRows()
  • }}
  • {% endcache %}
Cached content
  • ...
  • <p>Website was generated in 1 ms</p>
  • </body>
  • </html>

Simple management

You can manage your business logic as a tree structure which contains all relevant properties, including the access rights that work in the same way as in a file system.

The tree object has a number of useful methods that make it easy to generate site navigations such as menus, sidebars, navigation paths, and many more.

Business Logic

Do you want to know more?

Frequently Asked Questions

Can I download the UCMS for free?

Developing this software has taken a lot of time, money, and experience. These costs need to be covered. For this reason, a license to use the UCMS is required.

Will the UCMS ever be open source?

After the development costs have been amortized, we may publish the source code and allow free non-commercial use for individuals (but not companies). You should not expect that to happen in the near future, rather in 2021 or later.

What payment methods can I use?

You can pay by bank transfer or PayPal. Credit card payments are also possible via PayPal, all major credit cards from Visa, Mastercard, American Express and Discover are accepted.

When do I get the license key?

You will receive the license key and source code as soon as the payment has been credited to our bank account. If you pay with PayPal, we will send the license key and the source code with a delay of 3-5 days after receipt of the payment to protect us from payment fraud.

What are the licensing terms?

We grant license holders a non-exclusive, non-transferable, non-resellable, perpetual licence to use this software for one internet domain. This software license can not be transferred to third parties or resold.

Can I get a custom license/support?

Call us and let us talk about it. We offer many additional services, such as: Advice, support or creation of a skeleton of your application if you pay us for this. However, we do not manage or maintain any projects, and you will need your own developer to run your digital business for the long term.

Can I publish my project on Github?

It is not allowed to pass on or publish the UCMS source code in whole or in part. This means that you can only publish your own code that you wrote yourself, but you can not publish any parts of the UCMS code as open source on github or similar.

Will I get an invoice if I purchase?

Of course, after sending the order form you will receive an order confirmation / pro forma invoice (which is without tax relevance). The final (and tax law significant) invoice is sent together with your licence key and the source code after receipt of payment.

Do I have to pay VAT?

If you live in a member state of the European Union, you must also pay the VAT applicable to your country. The VAT rate depends on the EU member state in which you live. If you live somewhere else, there is no VAT.

Are the UCMS costs tax deductible?

Be sure to ask your accountant! If you are a company, the chances are very good that you can deduct the costs completely or at least partially from the tax. In the ideal case, it does not cost you anything to buy a UCMS license.