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.

Related tags

Frameworks fuel
Overview

FuelPHP

Description

FuelPHP is a fast, lightweight PHP 5.4+ framework. In an age where frameworks are a dime a dozen, we believe that FuelPHP will stand out in the crowd. It will do this by combining all the things you love about the great frameworks out there, while getting rid of the bad.

FuelPHP is fully PHP 7.3 compatible.

More information

For more detailed information, see the development wiki.

Development Team

Want to join?

The FuelPHP development team is always looking for new team members, who are willing to help lift the framework to the next level, and have the commitment to not only produce awesome code, but also great documentation, and support to our users.

You can not apply for membership. Start by sending in pull-requests, work on outstanding feature requests or bugs, and become active in the #fuelphp IRC channel. If your skills are up to scratch, we will notice you, and will ask you to become a team member.

Alumni

Comments
  • Develop

    Develop

    Added an email class based on my Dmail class (which has some code from codeigniters email class). Fully tested as working on Windows 7 64-bit on XAMPP (PHP 5.3.1). Documented and gives credit to codeigniter where needed. Use is almost identical to codeigniters email class:

    Email::initalize(Array())
        ->to('someone')
        ->from('someone')
        ->html('Set some HTML here')
        ->text('Set some text here')
        ->message('Can optionally use message and set_alt_message()')
        ->send();
    Email::print_debugger();
    
    opened by dudeami 21
  • Remove git submodules and update composer.json to install submodules

    Remove git submodules and update composer.json to install submodules

    See http://fuelphp.com/forums/discussion/13015/fuelphp-1-x-composer-setup

    composer.json in this PR is for 1.7.2, and needs tags "v1.7.2" of all sub repositories.

    To test this, change all "reference": "v1.7.2""reference": "1.7/master" to "reference": "1.8/develop"

    opened by kenjis 13
  • Replacing git submodules with composer

    Replacing git submodules with composer

    I stumbled across composer/installers the other day, and I figured out how to use it to install core, modules and packages. I have submitted a PR to them [ https://github.com/composer/installers/pull/57 ] so that they can enable support, but you should be able to test what I have done as I have used composer/satis to create my own temporary repository for installing composer packages.

    lukearmstrong/satis >> http://lukearmstrong.co.uk/satis/

    lukea@ft02 
    /var/www/fuel $ composer install
    Loading composer repositories with package information
    Installing dependencies
      - Installing fuelphp/upload (dev-master 7c8158a)
        Cloning 7c8158a71d690013f57e796ee8a287cb8b6b5c4a
    
      - Installing composer/installers (dev-fuelphp-support 7941e25)
        Cloning 7941e25f5ef72870337bbe427b302823e82c6a66
    
      - Installing fuel/core (dev-composer-installers cae0ffb)
        Cloning cae0ffba70fa87a3ee671aefd5a43b679c6f220b
    
      - Installing fuel/auth (dev-composer-installers 76ee813)
        Cloning 76ee813763fb6d4f35885c1f0b90f19c36eca2da
    
      - Installing fuel/email (dev-composer-installers 2233333)
        Cloning 223333377bcfdc7d13f381deedbda1fc04fb8dd7
    
      - Installing fuel/oil (dev-composer-installers 5da935e)
        Cloning 5da935e28e610ef46a70307d883620c8696114dc
    
      - Installing fuel/orm (dev-composer-installers c5d2787)
        Cloning c5d27874b2671098c349292b37acc4ae2a58b550
    
      - Installing fuel/parser (dev-composer-installers 920ed81)
        Cloning 920ed81a6b53e3cea8d7d4c1b1a5537b7141a7e4
    
      - Installing psr/log (1.0.0)
        Loading from cache
    
      - Installing monolog/monolog (1.3.1)
        Loading from cache
    
    monolog/monolog suggests installing mlehner/gelf-php (Allow sending log messages to a GrayLog2 server)
    monolog/monolog suggests installing raven/raven (Allow sending log messages to a Sentry server)
    monolog/monolog suggests installing doctrine/couchdb (Allow sending log messages to a CouchDB server)
    monolog/monolog suggests installing ext-amqp (Allow sending log messages to an AMQP server (1.0+ required))
    monolog/monolog suggests installing ext-mongo (Allow sending log messages to a MongoDB server)
    Writing lock file
    Generating autoload files
    

    I have submitted 6 other PRs to you.

    https://github.com/fuel/core/pull/1310 https://github.com/fuel/auth/pull/46 https://github.com/fuel/email/pull/36 https://github.com/fuel/oil/pull/168 https://github.com/fuel/orm/pull/216 https://github.com/fuel/parser/pull/64

    I am aware that the PRs aren't correct, as the composer.json files point to my personal repository and my branches, but this is just so that you can simply clone and run composer install to see it work.

    If you like the idea, all you need to do is add the fuel/* repositories to https://packagist.org/

    As a fair bit of effort went into this, I would appreciate being able to fix these PRs to make them point to the packages on packagist once you have added them, so please don't rewrite my commits as I won't get any "credit" for my work.

    opened by lukearmstrong 9
  • Develop

    Develop

    Fixed 3 bugs:

    • Image transparency with GIF images was turning up black, now turns up transparent
    • Backgrounds with JPEGs would remove alpha transparency when no bgcolor was given. This would cause jagged edges on transparent PNGs when outputting as JPEG.
    • Outputting non-PNG images as the format they were previously in (Such as a outputting a gif as a gif) would result in a PNG image.

    Made sizes() public, and added documentation for it. Added reload(), and made a config option for persistence (Same thing as calling reload). Added both to the docs.

    Few other minor fixes and what not.

    opened by dudeami 9
  • Cache

    Cache

    As requested by Phil I wrote a first attempt at a Cache implementation. It's been tested by now and should work fine.

    Usage example: $cache = Cache::factory('test'); try { $test = $cache->get(); } catch (Cache_Exception $e) { // create $test value // code below sets expiration to 5 minutes $cache->set_contents($test)->set_expiration(5)->set(); }

    opened by jschreuder 9
  • Adding the full path to php in oil executable

    Adding the full path to php in oil executable

    When you need to put a oil refine to a cronjob you need to put the full path of oil executable. But, the script doesnt "know" how to execute it. I added the "#!/usr/bin/php", in the file to get this fixed.

    opened by fabioluciano 7
  • Remove comment before 'orm'

    Remove comment before 'orm'

    Since oil generate a code which need the orm package, and since we will generally use this package on FuelPHP, I suggest to remove the comment before 'orm'...

    opened by sdrdis 6
  • Pagination-changes-2

    Pagination-changes-2

    Added more functionality to Pagination class.

    It has 3 operating modes:

    • classic (exactly as before, it is the default, no need to adjust anything in the way you use it)
    • segment_tag
    • get_tag

    See bellow for what the new operating modes do and how to activate them.

    // fully backwards compattible
    // by default it behaves exactly as before,
    // if you want to use the new functionality
    // then set $config['method'] (see bellow)
    
    //------------------------------------------------------------------------------------
    
    // 'method' => 'classic' (default - behaves exactly as before)
    //  no need to do anything different
    $config = array(
        'pagination_url' => \Uri::create(),
        'total_items' => 17,
        'per_page' => 5,
        'uri_segment' => 3,
    );
    Pagination::set_config($config);
    echo Pagination::create_links();
    
    //------------------------------------------------------------------------------------
    
    // 'method' => 'segment_tag'
    //      usefull if you want to put the pagination nr somwhere other at the end of the pagination_url string
    // behaviour:
    //      instead of being appended to the end of pagination_url, 
    //      the page_nr is str_eplaced where the '{p}' is
    // possible uses:
    //      'pagination_url' => \Uri::create('monkeys/index/{p}/foo')
    //      'pagination_url' => \Uri::create('monkeys/index/{p}?foo=bar')
    
    
    $config = array(
        'pagination_url' => \Uri::create('monkeys/index/{p}?foo=bar'),
        'total_items' => 17,
        'per_page' => 5,
        'uri_segment' => 3,
        'method' => 'segment_tag',
        
        //hide the segment when page_nr == 1 
        //'hide_1' => false, //default = true
        
        //set the tag that will be str_replaced with the page_nr in the pagination_url
        //'replacement_tag' => ':page', // default ='{p}'
    );
    
    //------------------------------------------------------------------------------------
    
    //'method' => 'get_tag'
    //      usefull if you want to put the pagination nr in a $_GET variable
    // behaviour:
    //      the page_nr is str_eplaced where the '{p}' is
    //      for example if 
    //          pagination_url = 'monkeys/index?{p}', 
    //      then the url for page 2 will be:
    //          'monkeys/index?page=2' 
    // in case 'hide_1' == true (default), for page 1 the page number will be omited from the link url by create_links:
    //      'monkeys/index' 
    //      instead of 
    //      'monkeys/index?page=1' 
    // the '?' and the '&' symbols in the url will be inteligently adjusted when hiding the page nr for page 1
    // possible uses:
    //      'pagination_url' => \Uri::create('monkeys/index?{p}')
    //      'pagination_url' => \Uri::create('monkeys/index?foo=bar&{p}&foose=snoose')
    // you get the point
    
    $config = array(
        'pagination_url' => \Uri::create('monkeys/index?{p}&foo=bar'),
        'total_items' => 17,
        'per_page' => 5,
        'method' => 'get_tag',
    
        // set the get variable name:
        //'get_variable'  => 'pagina', //default = 'page'
        
        //hide the get variable when page_nr == 1 
        //'hide_1' => false, //default = true
        
        //set the tag that will be str_replaced with the page_nr in the pagination_url
        //'replacement_tag' => ':page', // default ='{p}'
    );
    
    opened by snrp 6
  • Put back abstract class extension files

    Put back abstract class extension files

    Because otherwise they would be extended non-abstract and throw errors because the eval'ed class alias doesn't implment the abstract methods.

    This shouldn't be necessary I think, we could decide to use convention and postfix or prefix all abstract classes with "Abstract" like DB_Abstract instead of DB_Driver or the more flexible DB_DriverAbstract & DB_ResultAbstract. But I'll leave that up to you. In the mean time this commit should solve any problems created by the current situation.

    opened by jschreuder 6
  • Output Buffering & app stats

    Output Buffering & app stats

    I've wrapped the app execution into an output buffer, and added a finish() method to fuel/core which grabs the output buffer and replaces {memory_usage} and {elapsed_time} in the buffer before displaying, like CodeIgniter does, so that we can get a basic performance record as we develop.

    opened by lonnieezell 6
  • Update composer.json and readme to PHP 5.4. Also, fix some typos

    Update composer.json and readme to PHP 5.4. Also, fix some typos

    Hello, I want to propose some changes for composer.json and README.md files:

    composer.json

    • Update PHP version to 5.4 in composer.json require and description.

    README.md

    • Fix some typos
    • Update PHP version in description
    • Fix some FuelPHP links
    opened by findrakecil 5
Ergonode is modern PIM platform based on Symfony and Vue.js frameworks.

Modern Product Information Management Platform Ergonode is modern PIM platform based on Symfony and Vue.js frameworks. It has modular structure and gi

Ergonode 100 Dec 19, 2022
Mind is the PHP code framework designed for developers. It offers a variety of solutions for creating design patterns, applications and code frameworks.

Mind Mind is the PHP code framework designed for developers. It offers a variety of solutions for creating design patterns, applications and code fram

null 0 Dec 13, 2021
💡 Mudrock is a MVC PHP framework, which was inspired by the Laravel and CodeIgniter frameworks.

?? Mudrock is a MVC PHP framework, which was inspired by the Laravel and CodeIgniter frameworks

null 3 Nov 17, 2021
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
This repository contains custom View classes for the template frameworks

Slim Views This repository contains custom View classes for the template frameworks listed below. You can use any of these custom View classes by eith

Slim Framework 308 Nov 7, 2022
Kit is a lightweight, high-performance and event-driven web services framework that provides core components such as config, container, http, log and route.

Kit What is it Kit is a lightweight, high-performance and event-driven web services framework that provides core components such as config, container,

null 2 Sep 23, 2022
PHP boilerplate for quick start projects using Slim Framework and Eloquent.

Lassi PHP boilerplate for quick projects using Slim Framework and Eloquent database. Lassi is a small PHP boilerplate to use Slim Framework with Eloqu

Jabran Rafique⚡️ 59 Jul 14, 2022
Implementing programming best practices and patterns, and creating a custom PHP framework from scratch.

Implementing programming best practices and patterns, and creating a custom PHP framework from scratch.

Sajidur Rahman 3 Jul 2, 2022
Event-driven, non-blocking I/O with PHP.

Event-driven, non-blocking I/O with PHP. ReactPHP is a low-level library for event-driven programming in PHP. At its core is an event loop, on top of

ReactPHP 8.5k Dec 26, 2022
Domain Driven Design PHP helper classes

carlosbuenosvinos/ddd This library will help you with typical DDD scenarios, for now: Application Services Interface Transactional Application Service

Domain-Driven Design in PHP 642 Dec 28, 2022
Flare is a PHP full-stack web framework that is light, fast, flexible, and secure.

Flare framework is a PHP full-stack web framework that is simple ,powerful , fast , flexible, and secure with long-term support.

Flare framework 3 Oct 24, 2022
🚀Hyperf is an extremely performant and flexible PHP CLI framework

Hyperf is an extremely performant and flexible PHP CLI framework, powered by a state-of-the-art coroutine server and a large number of battle-tested components. Aside from decisively beating PHP-FPM frameworks in benchmarks, Hyperf is unique in its focus on flexibility and composition.

Hyperf 4.9k Dec 30, 2022
Hyperf is an extremely performant and flexible PHP CLI framework

?? A coroutine framework that focuses on hyperspeed and flexibility. Building microservice or middleware with ease.

Hyperf 5k Jan 4, 2023
li₃ is the fast, flexible and most RAD development framework for PHP

li₃ You asked for a better framework. Here it is. li₃ is the fast, flexible and the most RAD development framework for PHP. A framework of firsts li₃

Union of RAD 1.2k Dec 23, 2022
CodeIgniter - a PHP full-stack web framework that is light, fast, flexible and secure

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

CodeIgniter 4 web framework 4.5k Jan 4, 2023
Silex Skeleton - a fully-functional Silex application that you can use as the skeleton for your new applications

Silex Skeleton - a fully-functional Silex application that you can use as the skeleton for your new applications

Silex 789 Dec 5, 2022
A curated list of awesome tutorials and other resources for the Slim micro framework

Awesome Slim A curated list of awesome tutorials and other resources for the Slim micro framework Table of Contents Essentials Tutorials Packages and

Sawyer Charles 466 Dec 8, 2022
A easy way to install your basic yii projetc, we have encrypt database password in phpfile, my class with alot funtions to help you encrypt and decrypt and our swoole server install just run ./yii swoole/start and be happy!

Yii 2 Basic Project Template with swoole and Modules Yii 2 Basic Project Template is a skeleton Yii 2 application best for rapidly creating small proj

null 3 Apr 11, 2022
PHP Websocket Server that is compatible with socket.io

PHP SocketIO Server PHP Websocket Server that is compatible with socket.io So far the function use in this package is almost same with the naming in s

Cydrick Nonog 7 Dec 21, 2022