FEAST Framework

Overview
You might also like...
Open Source PHP Framework (originally from EllisLab)

What is CodeIgniter CodeIgniter is an Application Development Framework - a toolkit - for people who build web sites using PHP. Its goal is to enable

Yii 2: The Fast, Secure and Professional PHP Framework
Yii 2: The Fast, Secure and Professional PHP Framework

Yii 2 is a modern framework designed to be a solid foundation for your PHP application. It is fast, secure and efficient and works right out of the bo

CakePHP: The Rapid Development Framework for PHP - Official Repository

CakePHP is a rapid development framework for PHP which uses commonly known design patterns like Associative Data Mapping, Front Controller, and MVC. O

Slim is a PHP micro framework that helps you quickly write simple yet powerful web applications and APIs.

Slim Framework Slim is a PHP micro-framework that helps you quickly write simple yet powerful web applications and APIs. Installation It's recommended

High performance, full-stack PHP framework delivered as a C extension.

Phalcon Framework Phalcon is an open source web framework delivered as a C extension for the PHP language providing high performance and lower resourc

Official Zend Framework repository
Official Zend Framework repository

Welcome to the Zend Framework 3.0 Release! RELEASE INFORMATION Zend Framework 3.0.1dev This is the first maintenance release for the Zend Framework 3

🚀 PHP Microservice Full Coroutine Framework
🚀 PHP Microservice Full Coroutine Framework

PHP microservice coroutine framework 中文说明 Introduction Swoft is a PHP microservices coroutine framework based on the Swoole extension. Like Go, Swoft

Open Source PHP Framework (originally from EllisLab)

CodeIgniter 4 Development What is CodeIgniter? CodeIgniter is a PHP full-stack web framework that is light, fast, flexible and secure. More informatio

FuelPHP v1.x is a simple, flexible, community driven PHP 5.3+ framework, based on the best ideas of other frameworks, with a fresh start! FuelPHP is fully PHP 7 compatible.

FuelPHP Version: 1.8.2 Website Release Documentation Release API browser Development branch Documentation Development branch API browser Support Forum

Comments
  • Improve migrations

    Improve migrations

    Now you have something like:

    <?php
    
    declare(strict_types=1);
    
    namespace Migrations;
    
    use Feast\Database\Migration;
    use Feast\Database\Table\TableFactory;
    
    class migration2_jobs extends Migration
    {
    
        protected const NAME = 'Jobs';
    
        public function up(): void
        {
            /** @todo Create up query */
            $table = TableFactory::getTable('jobs');
            $table->varChar('job_id')
                ->varChar('job_name')
                ->text('job_context')
                ->timestamp('created_at')
                ->dateTime('ran_at',null,true)
                ->varChar('status', default: 'pending')
                ->tinyInt('tries')
                ->tinyInt('max_tries')
                ->varChar('queue_name');
            $table->create();
            $this->connection->rawQuery('ALTER TABLE jobs add PRIMARY KEY (job_id)');
            parent::up();
        }
    
        public function down(): void
        {
            /** @todo Create down query */
            TableFactory::getTable('jobs')->drop();
            parent::down();
        }
    }
    

    But I think we could modify each column separately, like:

    <?php
    
    declare(strict_types=1);
    
    namespace Migrations;
    
    use Feast\Database\Migration;
    use Feast\Database\Table\TableFactory;
    
    class migration2_jobs extends Migration
    {
    
        protected const NAME = 'Jobs';
    
        public function up(): void
        {
            /** @todo Create up query */
            $table = TableFactory::getTable('jobs');
            $table->primary()->varChar('job_id');
            $table->varChar('job_name');
            $table->text('job_context');
            $table->timestamp('created_at');
            $table->dateTime('ran_at',null,true);
            $table->varChar('status', default: 'pending')
            $table->tinyInt('tries')
            $table->tinyInt('max_tries')
            $table->varChar('queue_name');
            
            $table->create();
            parent::up();
        }
    
        public function down(): void
        {
            /** @todo Create down query */
            TableFactory::getTable('jobs')->drop();
            parent::down();
        }
    }
    

    If there's anything that you think that could be done different, let me know. I could start developing just the base for it.

    enhancement good first issue help wanted 
    opened by rafaelbreno 5
  • Version 2.0.0

    Version 2.0.0

    Version 2.0.0

    FEAST Framework Version 2.0 is updated for PHP 8.1 and has a few new features as well as some backwards compatibility breaks. See changes below.

    Changes

    PHP 8.0 -> 8.1 Upgrades

    1. Switched all classes in the \Feast\Enum namespace to be true enums.
    2. Updated class constants in the framework that should never be overridden as final
    3. Inlined new in initializers where applicable.
    4. Rewrote \Feast\Config::objectToArray and \Feast\Config::cloneObjectOrArrayAsObject to allow use of Enums in configs.

    Framework backwards compatibility breaks that may require updates to Userland code

    1. Removed support for Legacy query class detection (deprecated in v1.10.0).
    2. Changed bindings parameters in \Feast\Query::where and \Feast\Query::having to use variadic parameters instead of optionally accepting an array.
    3. Renamed \Feast\Enums\DocTypes to \Feast\Enums\DocType
    4. Removed JobMapper::markJobPendingIfAble and replaced with JobMapper::markJobRunningIfAble (deprecated in v1.13.0).

    Upgrading from FEAST Framework v1.x to v2.0.0

    To upgrade, the following user actions may be required.

    1. If the file Mapper/JobMapper.php does not contain the method markJobRunningIfAble, replace the contents of that file with the contents from here.

      Note: we don't automatically provide an upgrade script to prevent overwriting of userland code.

    opened by jpresutti 1
  • Update Database to require the logger interface, and bubble up through all usages

    Update Database to require the logger interface, and bubble up through all usages

    Next release will have this as optional at the Database class level, and will otherwise use the container. BC break in v3.0.0 will require the LoggerInterface and pass through to all other Database related classes via Dependency Injection.

    opened by jpresutti 0
Releases(v3.0.1)
  • v3.0.1(Dec 21, 2022)

  • v2.12.1(Dec 21, 2022)

    Version 2.12.1

    This version fixes a bug with the CLI on Windows systems (non WSL)

    Full Changelog: https://github.com/FeastFramework/framework/compare/v2.12.0...v2.12.1

    Source code(tar.gz)
    Source code(zip)
  • v1.25.1(Dec 21, 2022)

    Version 1.25.1

    This version fixes a bug with the CLI on Windows systems (non WSL)

    Full Changelog: https://github.com/FeastFramework/framework/compare/v1.25.0...v1.25.1

    Source code(tar.gz)
    Source code(zip)
  • v3.0.0(Dec 8, 2022)

    Version 3.0.0 - Major release

    This version of FEAST Framework is upgraded for (and requires) PHP 8.2.

    Attribute classes are now marked as readonly.

    Full Changelog: https://github.com/FeastFramework/framework/compare/v2.11.0...v3.0.0

    Source code(tar.gz)
    Source code(zip)
  • v2.12.0(Dec 8, 2022)

    Version 2.12.0

    This version fixes a bug with syslog functionality (Log messages would also go to log file). In addition, this version allows compatibility with PHP 8.2

    Full Changelog: https://github.com/FeastFramework/framework/compare/v2.11.0...v2.12.0

    Source code(tar.gz)
    Source code(zip)
  • v1.25.0(Dec 8, 2022)

    Version 1.25.0 - Minor release

    This version fixes a bug with syslog functionality (Log messages would also go to log file). In addition, this version allows compatibility with PHP 8.2

    Full Changelog: https://github.com/FeastFramework/framework/compare/v1.24.0...v1.25.0

    Source code(tar.gz)
    Source code(zip)
  • v2.11.0(Oct 10, 2022)

    Version 2.11.0 - Minor Release

    This release adds some new features as well as fixes a bug in the templates.

    1. Add ability to disable sessions through the config file (sessions.enabled => false)
    2. Add cache-all and clear-all to the Cache controller. (See the documentation)
    3. Added support for Syslog to the built in Logger. See the config documentation here.
    4. Added path helper methods for config/storage paths. See the documentation here.
    5. Fixed a bug with the Mapper template for database tables with no primary key. The save method generated was missing a parameter, causing an exception until edited.

    Full Changelog: https://github.com/FeastFramework/framework/compare/v2.10.2...v2.11.0

    Source code(tar.gz)
    Source code(zip)
  • v1.24.0(Oct 10, 2022)

    Version 1.24.0 - Minor Release

    This release adds some new features as well as fixes a bug in the templates.

    1. Add ability to disable sessions through the config file (sessions.enabled => false)
    2. Add cache-all and clear-all to the Cache controller. (See the documentation)
    3. Added support for Syslog to the built in Logger. See the config documentation here.
    4. Added path helper methods for config/storage paths. See the documentation here.
    5. Fixed a bug with the Mapper template for database tables with no primary key. The save method generated was missing a parameter, causing an exception until edited.

    Full Changelog: https://github.com/FeastFramework/framework/compare/v1.23.2...v1.24.0

    Source code(tar.gz)
    Source code(zip)
  • v2.10.2(Sep 29, 2022)

    Version 2.10.2 - Patch Release

    Fix issue with PDO and Postgres causing conversion of bools to "1" and ""

    Full Changelog: https://github.com/FeastFramework/framework/compare/v2.10.1...v2.10.2

    Source code(tar.gz)
    Source code(zip)
  • v1.23.2(Sep 29, 2022)

    Version 1.23.2 - Patch Release

    Fix issue with PDO and Postgres causing conversion of bools to "1" and ""

    Full Changelog: https://github.com/FeastFramework/framework/compare/v1.23.1...v1.23.2

    Source code(tar.gz)
    Source code(zip)
  • v2.10.1(Jul 1, 2022)

    Version 2.10.1 - Patch Release

    Fix issue with server failures sending 200 response code

    Full Changelog: https://github.com/FeastFramework/framework/compare/v2.10.0...v2.10.1

    Source code(tar.gz)
    Source code(zip)
  • v1.23.1(Jul 1, 2022)

    Version 1.23.1 - Patch Release

    Fix issue with server failures sending 200 response code

    Full Changelog: https://github.com/FeastFramework/framework/compare/v1.23.0...v1.23.1

    Source code(tar.gz)
    Source code(zip)
  • v2.10.0(Jun 30, 2022)

    Version 2.10.0 - Minor Release

    This version adds support to setHeader directly on the ResponseInterface rather than calling the native header function.

    In addition, this release fixes a bug where non-string keys are incorrectly handled by the Config class.

    Full Changelog: https://github.com/FeastFramework/framework/compare/v2.9.0...v2.10.0

    Source code(tar.gz)
    Source code(zip)
  • v1.23.0(Jun 30, 2022)

    Version 1.23.0 - Minor Release

    This version adds support to setHeader directly on the ResponseInterface rather than calling the native header function.

    In addition, this release fixes a bug where non-string keys are incorrectly handled by the Config class.

    Full Changelog: https://github.com/FeastFramework/framework/compare/v1.22.0...v1.23.0

    Source code(tar.gz)
    Source code(zip)
  • v2.9.0(Jun 26, 2022)

    Version 2.9.0 - Minor Release

    This version expands support for logging database queries (debug log level). Prior release added support for queries using query builder, this one expands to cover the rawQuery method.

    In addition, this release expands the JsonParam support to allow decoding multiple keys on a JsonRequest to multiple variables. See the docs here.

    Finally, this release enhances database functionality by adding the following:

    1. Auto escaping of identifiers when saving models or building new tables with the table builder.
    2. Add table names to automatically generated index names to reduce likelihood of collisions.

    Full Changelog: https://github.com/FeastFramework/framework/compare/v2.8.0...v2.9.0

    Source code(tar.gz)
    Source code(zip)
  • v1.22.0(Jun 26, 2022)

    Version 1.22.0 - Minor Release

    This version expands support for logging database queries (debug log level). Prior release added support for queries using query builder, this one expands to cover the rawQuery method.

    In addition, this release expands the JsonParam support to allow decoding multiple keys on a JsonRequest to multiple variables. See the docs here.

    Finally, this release enhances database functionality by adding the following:

    1. Auto escaping of identifiers when saving models or building new tables with the table builder.
    2. Add table names to automatically generated index names to reduce likelihood of collisions.

    Full Changelog: https://github.com/FeastFramework/framework/compare/v1.21.0...v1.22.0

    Source code(tar.gz)
    Source code(zip)
  • v2.8.0(Jun 11, 2022)

    Version 2.8.0 - Minor Release

    This version adds support for logging database queries (debug log level) and also adds docs for logger.

    In addition, this release fixes a bug for the non-curl version of the HttpRequest class where the http response headers were not being parsed due to an order of operations issue.

    Full Changelog: https://github.com/FeastFramework/framework/compare/v2.7.1...v2.8.0

    Source code(tar.gz)
    Source code(zip)
  • v1.21.0(Jun 11, 2022)

    Version 1.21.0 - Minor Release

    This version adds support for logging database queries (debug log level) and also adds docs for logger.

    In addition, this release fixes a bug for the non-curl version of the HttpRequest class where the http response headers were not being parsed due to an order of operations issue.

    Full Changelog: https://github.com/FeastFramework/framework/compare/v1.20.1...v1.21.0

    Source code(tar.gz)
    Source code(zip)
  • v2.7.1(Jun 2, 2022)

    Version 2.7.1 - Patch Release

    This release adds generics support on the JSON Marshaller to allow automatic type inference on returned objects.

    Full Changelog: https://github.com/FeastFramework/framework/compare/v2.7.0...v2.7.1

    Source code(tar.gz)
    Source code(zip)
  • v1.20.1(Jun 2, 2022)

    Version 1.20.1 - Patch Release

    This release adds generics support on the JSON Marshaller to allow automatic type inference on returned objects.

    Full Changelog: https://github.com/FeastFramework/framework/compare/v1.20.0...v1.20.1

    Source code(tar.gz)
    Source code(zip)
  • v2.7.0(May 28, 2022)

    Version 2.7.0 - Minor Release

    This version of FEAST comes with several minor enhancements.

    1. Change default length on text type columns to null
    2. Cleanup incorrect throws on interfaces
    3. Change Json Marshaller to allow instantiation of objects to skip constructors
    4. Change Json Marshaller to allow restricting output string by Property Visibility.
    5. Add a forceUpdate parameter on the save methods to allow performing an update without fetching first. This will only update fields that were set on the model.

    See docs on Json Marshaller here and docs on the model updates here

    Full Changelog: https://github.com/FeastFramework/framework/compare/v2.6.2...v2.7.0

    Source code(tar.gz)
    Source code(zip)
  • v1.20.0(May 28, 2022)

    Version 1.20.0 - Minor Release

    This version of FEAST comes with several minor enhancements.

    1. Change default length on text type columns to null
    2. Cleanup incorrect throws on interfaces
    3. Change Json Marshaller to allow instantiation of objects to skip constructors
    4. Change Json Marshaller to allow restricting output string by Property Visibility.
    5. Add a forceUpdate parameter on the save methods to allow performing an update without fetching first. This will only update fields that were set on the model.

    See docs on Json Marshaller here and docs on the model updates here

    Full Changelog: https://github.com/FeastFramework/framework/compare/v1.19.2...v1.20.0

    Source code(tar.gz)
    Source code(zip)
  • v2.6.2(May 18, 2022)

    Version 2.16.2 - Patch Release

    This patch release updates the docs for the new JsonParameter attribute to be more clear.

    Full Changelog: https://github.com/FeastFramework/framework/compare/v2.16.1...v2.16.2

    Source code(tar.gz)
    Source code(zip)
  • v2.6.1(May 18, 2022)

    Version 2.6.1 - Patch Release

    This patch release fixes a bug introduced in 2.3.0 that causes a new model to not store its primary key when saved. If the model's primary key is used in any way, an exception was thrown.

    Full Changelog: https://github.com/FeastFramework/framework/compare/v2.6.0...v2.6.1

    Source code(tar.gz)
    Source code(zip)
  • v2.6.0(May 18, 2022)

    Version 2.6.0

    This minor release adds first class support for JSON requests to objects without manually unwrapping the post data. Read the docs for more info.

    Full Changelog: https://github.com/FeastFramework/framework/compare/v2.5.0...v2.6.0

    Source code(tar.gz)
    Source code(zip)
  • v1.19.2(May 18, 2022)

    Version 1.19.2 - Patch Release

    This patch release updates the docs for the new JsonParameter attribute to be more clear.

    Full Changelog: https://github.com/FeastFramework/framework/compare/v1.19.1...v1.19.2

    Source code(tar.gz)
    Source code(zip)
  • v1.19.1(May 18, 2022)

    Version 1.19.1 - Patch Release

    This patch release fixes a bug introduced in 1.16.1 that causes a new model to not store its primary key when saved. If the model's primary key is used in any way, an exception was thrown.

    Full Changelog: https://github.com/FeastFramework/framework/compare/v1.19.0...v1.19.1

    Source code(tar.gz)
    Source code(zip)
  • v1.19.0(May 18, 2022)

    Version 1.19.0

    This minor release adds first class support for JSON requests to objects without manually unwrapping the post data. Read the docs for more info.

    Full Changelog: https://github.com/FeastFramework/framework/compare/v1.18.0...v1.19.0

    Source code(tar.gz)
    Source code(zip)
  • v2.5.0(May 4, 2022)

    Version 2.5.0 - Minor Release

    This minor release adds first class application environment based Access Control support. Read the docs for more info.

    Full Changelog: https://github.com/FeastFramework/framework/compare/v2.4.0...v2.5.0

    Source code(tar.gz)
    Source code(zip)
  • v1.18.0(May 4, 2022)

    Version 1.18.0 - Minor Release

    This minor release adds first class application environment based Access Control support. Read the docs for more info.

    Full Changelog: https://github.com/FeastFramework/framework/compare/v1.17.0...v1.18.0

    Source code(tar.gz)
    Source code(zip)
CleverStyle Framework is simple, scalable, fast and secure full-stack PHP framework

CleverStyle Framework is simple, scalable, fast and secure full-stack PHP framework. It is free, Open Source and is distributed under Free Public Lice

Nazar Mokrynskyi 150 Apr 12, 2022
I made my own simple php framework inspired from laravel framework.

Simple MVC About Since 2019, I started learning the php programming language and have worked on many projects using the php framework. Laravel is one

null 14 Aug 14, 2022
PHPR or PHP Array Framework is a framework highly dependent to an array structure.

this is new repository for php-framework Introduction PHPR or PHP Array Framework is a framework highly dependent to an array structure. PHPR Framewor

Agung Zon Blade 2 Feb 12, 2022
I made my own simple php framework inspired from laravel framework.

Simple MVC About Since 2019, I started learning the php programming language and have worked on many projects using the php framework. Laravel is one

Rizky Alamsyah 14 Aug 14, 2022
Framework X – the simple and fast micro framework for building reactive web applications that run anywhere.

Framework X Framework X – the simple and fast micro framework for building reactive web applications that run anywhere. Quickstart Documentation Tests

Christian Lück 620 Jan 7, 2023
Framework X is a simple and fast micro framework based on PHP

Framework X is a simple and fast micro framework based on PHP. I've created a simple CRUD application to understand how it works. I used twig and I created a custom middleware to handle PUT, DELETE methods.

Mahmut Bayri 6 Oct 14, 2022
Spiral Framework is a High-Performance PHP/Go Full-Stack framework and group of over sixty PSR-compatible components

Spiral HTTP Application Skeleton Spiral Framework is a High-Performance PHP/Go Full-Stack framework and group of over sixty PSR-compatible components.

Spiral Scout 152 Dec 18, 2022
Sunhill Framework is a simple, fast, and powerful PHP App Development Framework

Sunhill Framework is a simple, fast, and powerful PHP App Development Framework that enables you to develop more modern applications by using MVC (Model - View - Controller) pattern.

Mehmet Selcuk Batal 3 Dec 29, 2022
A PHP framework for web artisans.

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

The Laravel Framework 72k Jan 7, 2023
The Symfony PHP framework

Symfony is a PHP framework for web and console applications and a set of reusable PHP components. Symfony is used by thousands of web applications (in

Symfony 27.8k Jan 2, 2023