Framework web puissant et innovant

Court résumé


UCMS est une étape importante dans le développement Web

introduction

UCMS est un nouveau framework / CMS révolutionnaire pour le développement d'applications Web d'entreprise internationalisées.

L'une des principales caractéristiques est l'impressionnant moteur de modèles basé sur la syntaxe Twig. Ce moteur de gabarit est un langage de programmation complètement nouveau, similaire à JavaScript.

En raison de la puissance de ce nouveau langage de gabarit, il est possible de programmer des choses qui semblaient auparavant totalement impossibles.

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

Être en avance sur son temps

Le nouveau langage de modèle inclut de nombreux nouveaux paradigmes de programmation, tels qu'une interface de fonction étrangère, des fonctions anonymes, des callbacks, des balises dynamiques, des expressions de fonction, un chaînage de méthodes, un currying et une scriptabilité.

Grâce au travail acharné d'un brillant programmeur, le nouveau langage de gabarit est un langage de programmation tout-puissant offrant de nombreuses solutions nouvelles et rendant tout impossible.

Vous ne pouvez obtenir cette nouvelle technologie ici car il faudrait des années pour développer quelque chose de similaire.

Tags dynamiques
  • {% 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.

Programmation sans limites

Vous pouvez appeler n’importe quelle fonction ou méthode directement à partir de vos modèles, qu’elles soient statiques ou orientées objet.

Et vous pouvez même accéder directement à vos constantes de classe et à vos constantes PHP.

Accéder à n'importe quelle classe ou fonction
  • {% set api = new \Your\Api( ucms.database ) %}
  • {{
  • api.doSomething('Hello World',
  • api::ANY_CONSTANT
  • )
  • }}

Programmation à un niveau supérieur

Avec le nouveau Twig, vous pouvez référencer n’importe quelle fonction comme en JavaScript, qu’il s’agisse d’une fonction interne à PHP, d’une méthode Object, d’une fonction statique dans une classe ou d’une fonction template.

De plus, toute fonction interne à PHP, toute fonction de modèle et toute macro de modèle peuvent être chaînées comme en JavaScript, de sorte que vous puissiez écrire un code très lisible et facile à comprendre.

Référence n'importe quelle fonction
  • {% set
  • message = "Hello World \u263a",
  • byteLength = \strlen,
  • charLength = \mb_strlen
  • %}
  • Byte length: {{ message.byteLength() }}
  • Char length: {{ message.charLength() }}
Chaîne n'importe quelle fonction
  • Hello {{ 'dlrow'.\strrev().\ucfirst() }}

Turing complet

Le nouveau langage de template est un langage de programmation avec la complétude de Turing.

Vous pouvez utiliser toutes les structures de contrôle et tous les paradigmes comme dans tout autre langage de programmation moderne.

Les modèles et les expressions sont compilés dans un arbre de syntaxe abstraite. Le compilateur peut détecter et optimiser les expressions statiques de sorte que, par exemple, 1 + 1 soit stocké sous la forme de 2 dans l'arbre de syntaxe abstraite.

Ce nouveau langage de template révolutionnaire combine les avantages de PHP, de JavaScript et de la syntaxe Twig, dans un nouveau langage de programmation incroyable et tout-puissant.

Capacité de script complète
  • {% 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 %}

Traductions avec contexte

Les chaînes traduisibles peuvent être définies très facilement et extraites automatiquement sous forme de fichier .po.

Un contexte de traduction, des expressions, des formes plurielles et des commentaires du traducteur peuvent également être utilisés.

Des traductions avec des liens et une mise en forme peuvent être créées en combinaison avec la balise de démarquage, et même des documents PDF internationalisés sont possibles.

Il n'a jamais été aussi facile de créer des applications internationalisées.

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!"

Générateur de PDF basé sur des modèles

Notre système comporte un générateur de PDF basé sur des modèles qui facilite plus que jamais la création de documents commerciaux internationalisés.

Nous avons implémenté de nombreuses fonctionnalités dans ce générateur, par exemple la prise en charge UTF-8 et Unicode, les polices TTF, de nombreux filtres et l'utilisation d'unités arbitraires telles que em, px, pt, mm, cm, in et%.

Et ce n’est là qu’une petite partie des fonctions de PDF Generator.

PDF professionnel
  • <?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>

Plus rapide que le code php pur

Un soin particulier a été pris pour ne pas ajouter de lest inutile au code.

Le noyau UCMS peut gérer les requêtes sans exécuter de requête de base de données. Les seules requêtes à exécuter sont celles de votre application.

Le moteur de modèle peut mettre en cache le contenu généré, ce qui permet un traitement extrêmement rapide, encore plus rapide que le code PHP.

Si la balise de cache a été utilisée à bon escient, l'UCMS est même sur un Raspberry Pi plus rapidement que tout autre système sur un vrai serveur Web.

Étiquette de cache
  • {% cache %}
  • {{
  • yourApi.getItems().renderRows()
  • }}
  • {% endcache %}
Contenu mis en cache
  • ...
  • <p>Website was generated in 1 ms</p>
  • </body>
  • </html>

Gestion simple

Vous pouvez gérer votre logique métier sous forme d'arborescence contenant toutes les propriétés pertinentes, y compris les droits d'accès qui fonctionnent de la même manière que dans un système de fichiers.

L'objet d'arborescence dispose d'un certain nombre de méthodes utiles qui facilitent la génération de navigations de site, telles que les menus, les barres latérales, les chemins de navigation, etc.

Logique d'entreprise

Voulez-vous en savoir plus ?

Questions fréquemment posées

Puis-je télécharger le logiciel UCMS gratuitement?

Développer ce logiciel a pris beaucoup de temps, d’argent et d’expérience. Ces coûts doivent être couverts. Pour cette raison, une licence d'utilisation de l'UCMS est requise.

L'UCMS sera-t-il un jour open source?

Une fois les coûts de développement amortis, nous pouvons publier le code source et permettre une utilisation non commerciale gratuite pour les particuliers (mais pas les entreprises). Vous ne devriez pas vous attendre à ce que cela se produise dans un proche avenir, mais plutôt en 2021 ou plus tard.

Quels modes de paiement puis-je utiliser?

Vous pouvez payer par virement bancaire ou PayPal. Les paiements par carte de crédit sont également possibles via PayPal. Toutes les principales cartes de crédit de Visa, Mastercard, American Express et Discover sont acceptées.

Quand est-ce que je reçois la clé de licence?

Vous recevrez la clé de licence et le code source dès que le paiement aura été crédité sur notre compte bancaire. Si vous payez avec PayPal, nous vous enverrons la clé de licence et le code source dans un délai de 3 à 5 jours après réception du paiement pour nous protéger de la fraude au paiement.

Quelles sont les conditions de licence?

Nous accordons aux détenteurs de licence une licence perpétuelle, non exclusive, non transférable, non revendable, pour utiliser ce logiciel sur un domaine Internet. Cette licence de logiciel ne peut être transférée à des tiers ni revendue.

Puis-je obtenir une licence / un support personnalisé?

Appelez-nous et laissez-nous en parler. Nous offrons de nombreux services supplémentaires, tels que: Conseils, assistance ou création d’un squelette de votre application si vous nous payez pour cela. Cependant, nous ne gérons ni ne maintenons aucun projet et vous aurez besoin de votre propre développeur pour gérer votre entreprise numérique à long terme.

Puis-je publier mon projet sur Github?

Il est interdit de transmettre ou de publier le code source de UCMS en tout ou en partie. Cela signifie que vous ne pouvez publier que votre propre code que vous avez écrit vous-même, mais vous ne pouvez publier aucune partie du code UCMS en tant que source ouverte sur github ou similaire.

Vais-je recevoir une facture si j'achète?

Bien sûr, après l'envoi du formulaire de commande, vous recevrez une confirmation de commande / une facture pro forma (sans pertinence fiscale). La facture finale (et significative du point de vue fiscal) est envoyée avec votre clé de licence et le code source après réception du paiement.

Dois-je payer la TVA?

Si vous résidez dans un État membre de l'Union européenne, vous devez également payer la TVA applicable dans votre pays. Le taux de TVA dépend de l'état membre de l'UE dans lequel vous vivez. Si vous habitez ailleurs, il n'y a pas de TVA.

Les coûts UCMS sont-ils déductibles des impôts?

Assurez-vous de demander à votre comptable! Si vous êtes une entreprise, il est très probable que vous puissiez déduire les coûts intégralement ou au moins partiellement de la taxe. Dans l'idéal, acheter une licence UCMS ne vous coûte rien.