Git Product home page Git Product logo

ICanBoogie

Release Code Quality Code Coverage Packagist

ICanBoogie is a high-performance micro-framework. It is written with speed, flexibility and lightness in mind. ICanBoogie doesn't try to be an all-in-one do-it-all solution but provides the essential features to quickly and easily build web applications. It is easily extensible, and a variety of packages are available to complement its features with rendering, views, routing, operations, internationalization, translation, ActiveRecord, facets, mailer

Together with Brickrouge and Patron, ICanBoogie is one of the components that make the CMS Icybee. You might want to check these projects too.

What does micro mean?

"Micro" means that the core features of ICanBoogie are kept to the essential, the core is simple but greatly extensible. For instance, ICanBoogie won't force an ORM on you, although its ActiveRecord implementation is pretty nice. In the same fashion, its routing mechanisms are quite agnostic and let you use your very own dispatcher if you want to.

Configuration and conventions

ICanBoogie and its components are usually very configurable and come with sensible defaults and a few conventions. Configurations are usually located in "config" folders, while locale messages are usually located in "locale" folders. Components configure themselves thanks to ICanBoogie's Autoconfig feature, and won't require much of you other than a line in your composer.json file.

Acknowledgement

MooTools, Ruby on Rails, Yii, and of course Bacara.

Summary

Routes

The package provides a controller for the /api/ping route, which may be used to renew a session, if one existed in the first place. When the timer query parameter is present, the controller gives timing information as well.

<?php

use ICanBoogie\HTTP\Request;

$request = Request::from('/api/ping?timer');

echo $request()->body;
// pong, in 4.875 ms (ready in 3.172 ms)

Helpers

The following helper functions are defined:

  • app(): Returns the Application instance, or throws ApplicationNotInstantiated if it has not been instantiated yet.
  • boot(): Instantiates a Application instance with the autoconfig and boots it.
  • log(): Logs a debug message.
  • log_success(): Logs a success message.
  • log_error(): Logs an error message.
  • log_info(): Logs an info message.
  • log_time(): Logs a debug message associated with a timing information.

Installation

composer require icanboogie/icanboogie

Don't forget to modify the script section of your "composer.json" file if you want to benefit from the autoconfig feature:

{
    "scripts": {
        "post-autoload-dump": "ICanBoogie\\Autoconfig\\Hooks::on_autoload_dump"
    }
}

The following packages are required, you might want to check them out:

The following packages can also be installed for additional features:

The following bindings are available to help in integrating components:

Continuous Integration

The project is continuously tested by GitHub actions.

Tests Static Analysis Code Style

Code of Conduct

This project adheres to a Contributor Code of Conduct. By participating in this project and its community, you are expected to uphold this code.

Contributing

Please see CONTRIBUTING for details.

License

ICanBoogie is released under the BSD-3-Clause.

ICanBoogie's Projects

accessor icon accessor

Implements getters/setters, read-only/write-only properties, volatile defaults, type control…

app-hello icon app-hello

A starter project for your application built with ICanBoogie

cldr icon cldr

Internationalize your application using Unicode's CLDR

common icon common

Basic classes and helpers shared by some ICanBoogie packages

config icon config

Synthesizes low-level configurations.

datetime icon datetime

Extends the features of PHP DateTime and DateTimeZone classes to ease the handling of times, time zones and time zone locations.

docs icon docs

Documents for https://icanboogie.org/docs

event icon event

Allows developers to provide hooks which other developers may hook into.

facets icon facets

Makes it easy to implement faceted search.

http icon http

Provides an API to handle HTTP requests.

i18n icon i18n

Provides an easy-to-use and extensible framework for translating your application or for providing multi-language support in your application

image icon image

Support for images and colors.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.