Software:Spiral Framework

From HandWiki
Spiral Framework
Spiral Framework Logo.png
Developer(s)Spiral Scout LLC
Initial release6 April 2017 (2017-04-06)
Stable release
2.0.0 / 2020-05-08
RepositorySpiral Framework Repository
Written inPHP/GO
TypeWeb framework
LicenseMIT License
Websitespiral.dev

Spiral Framework (also referred to as Spiral) is a free open-source[1] PHP/GO full-stack web framework developed by Spiral Scout for any type of software application development. Its latest version, Spiral Framework 2.0, was released in May 2020 under the terms of the MIT License.

Purpose

Spiral Framework is based on open-source and community libraries, including RoadRunner[2] and Cycle ORM[3], which are two products developed by Spiral Scout and the open-source developer community. It provides developers with a solid, flexible and modular codebase. According to performance benchmarks, Spiral Framework is 5 to 10 times faster than other PHP Frameworks like Laravel and Symfony.[4]

History

Anton Titov, the author, began developing Spiral Framework in 2008 as an alternative for existing PHP frameworks. It started as a portable kernel for freelance apps and was later transformed into a set of PSR-compatible components united by a common integration level. Spiral Framework 1.0 was officially released in 2017.[5] Spiral Scout has maintained the code, and with the help of the open-source community that is currently using it, they rebuilt the legacy framework and finished the second version three years later in May 2019. Spiral Framework 2.0 was officially released one year later[6][7] in May of 2020. Spiral has been tested on a number of projects.[8] Spiral was included in PHP Russia 2020, an online PHP conference.[9]

Features

Spiral Framework is a combination of a PHP core and an application server written in Golang. A hybrid runtime model allows Spiral to handle heavy-loading tasks using fewer resources. Writing code for Spiral Framework is the same as for any other PHP framework but should be made in accordance with the SOLID principles in order to get a more flexible and maintainable product at the end. Spiral Framework features include:

  • RoadRunner – PHP application server written in Golang;
  • Cycle ORM (object-relational mapping) – PHP datamapper ORM and data modeling engine;
  • Resident memory application kernel;
  • Native support of queue (AMQP, SQS, Beanstalk) and background PHP workers;
  • GRPC server and client;
  • Pub/Sub pattern;
  • HTTPS, HTTP/2+Push, encrypted cookies, sessions, CSRF-guard;
  • MySQL, MariaDB, SQLite, PostgreSQL, SQL Server support, auto-migrations;
  • Intuitive scaffolding and prototyping;
  • Helpful class discovery via static analysis;
  • Authentication, RBAC security, validation, and encryption;
  • Dynamic template engine to create your own HTML tags.

Components

Spiral Framework currently includes over 60 PSR-compatible components, though all are not required for its use. Most of the libraries integrated with Spiral can be used outside the framework. For instance, developers working with Laravel and Symfony can use the RoadRunner application server separately in their projects. In addition, the HTTP layer is aligned with the PHP Standard Recommendation 7, 15, and 17, which allows a developer to change the router and message implementation.

RoadRunner

RoadRunner is a PHP application server, process manager, and load-balancer[10] designed by Spiral Scout and released in 2018. It is updated weekly according to its GitHub page. RoadRunner features several libraries written in Golang. It is based on the principles of multithreading and utilizes goroutines. RoadRunner runs on several operating systems including Mac OS, Windows, Linux, FreeBSD, and ARM.

Cycle ORM

Cycle ORM is a data mapper ORM and data modeling engine[11] designed by Spiral Scout. It supports dynamic mapping schemes and allows users to add, update or delete data in their databases, as well as build queries for PHP web-based applications. Cycle ORM supports various relational databases including MySQL, MariaDB, PostgreSQL, SQL Server, and SQLite and can be used outside the Spiral Framework.

Security

Using Spiral Framework, developers can build secure applications with request filters, CSRF, and encrypted cookies and session data based on defuse/php-encryption. The framework also utilizes anti-tampering algorithms to protect users’ cookies and sessions. Spiral Framework applies token-based authentication performed through RBAC components to ensure only authorized users can log in to a server using their security tokens. Additional use of an intermediate interceptor layer allows adding special restrictions on controllers, as well as preventing errors and pre-validating data.

See also

References

Versions

Version Release Date
v0.8.10 20 Jan 2016
v0.9.0 5 Feb 2017
v1.0.0 6 Apr 2017
v2.0.0 May 13 2020
v2.1.0 23 Sep 2019
v2.2.0 24 Oct 2019
v2.3.0 1 Nov 2019
v2.4.0 19 Dec 2019
v2.5.0 18 June 2020

External links


Script error: No such module "AFC submission catcheck".