• Stars
    star
    106
  • Rank 325,871 (Top 7 %)
  • Language
    PHP
  • License
    MIT License
  • Created about 10 years ago
  • Updated almost 7 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

[NOT MAINTAINED] A full-featured PHP framework powering the server side of Webiny Platform. Can also be used as standalone library.

Webiny Framework

This is a set of components for building PHP applications. Each of the component has its own documentation with usage examples and examples of configuration.

Install the framework

The best way to install the framework is using Composer.

composer require webiny/framework

For additional versions of the package, visit the Packagist page.

Requirements

Webiny Framework requires PHP 7.0 or later.

Feedback

We do love feedback, it doesn't matter if it's positive or not, any feedback is much appreciated. So if you have something to tell us, please email us at info{at}webiny.com.

Licence

Webiny Framework is released under MIT license.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Some notes on coding:

  • before writing any code, make sure you have read PSR-1 coding standard (http://www.php-fig.org/psr/psr-1/)
  • each package should have its own exception handler
  • prefer the usage of 'use' keyword instead of writing the full class name with namespace

Git & IDE Configuration

Line endings PHPStorm > File > Line Separators > LF PHPStorm > Preferences > Code Style > General > line separator (for new files) > Unix

Git Execute in terminal: git config --global core.autocrlf input

Bridges and Components

Bridges

Webiny Framework is written in a way that it maximally re-uses other open-source components, so that we don't write the same code over and over again. But in order to make some certain compatibility layer between our components and 3rd party libraries, we introduced Bridges. If a component uses a 3rd party library, it is used over a bridge, where we implement an interface, so if we wish to change the external library, we would just create a new bridge, without the need to refactor the component itself.

Components

This is the list of currently available components:

  • Amazon
    • currently supports implementation of Amazon S3
  • Annotations
    • component for parsing annotations from a class, method or a property
  • Bootstrap
    • MVC bootstrap component
  • Cache
    • provides several caching libraries like Apc, Couchbase, Memcache and Redis
  • ClassLoader
    • a PSR-0, PSR-4 and PEAR class loader
  • Config
    • a very handy library for parsing YAML, INI, JSON and PHP configuration files
  • Crypt
    • library for encoding, decoding and validating hashes
  • Entity
    • MongoDb ODM layer
  • EventManager
    • want to do event-based development, this is a library for you
  • Http
    • library for parsing all data from an HTTP request
    • will soon also support building an HTTP response
  • Image
    • library for image manipulation
  • Logger
    • a component for handling logging during code execution
  • Mailer
    • component for sending emails
  • Mongo
    • MongoDB class wrapper
  • OAuth2
    • library for working with OAuth2, currently supports Facebook, LinkedIn and Google+
  • REST
    • fully featured REST library with caching, security and rate control
  • Router
    • handles defining, parsing, creating and matching url routes
  • Security
    • provides authorization and authentication layer
    • supports Http, Web form, Twitter and OAuth2 authentication
  • ServiceManager
    • want to write truly service based, loosely-coupled code, this library provides that
  • StdLib
    • tired of constantly mixing legacy PHP functions and objective code
    • this component provides objective wrappers for Arrays, Strings, Urls, Files, and DateTime types
  • Storage
    • storage abstraction layer that simplifies the way you work with files and directories
    • supports local file system and Amazon S3
  • TemplateEngine
    • provides a layer for rendering view templates and defining template plugins and manipulators
  • TwitterOAuth
    • library for working with Twitter API using Twitter OAuth

Unit testing

All of the components feature unit tests, but some cover more code, while others cover only a small portion. We intend to change that over time and to have as much as possible of our code covered by unit tests.

To run the unit tests, you need to use the following command:

$ cd path/to/vendor/webiny/framework/
$ composer.phar install
$ phpunit

Note that some components like, Cache, Mailer and Storage might require that you update their test configuration before running the unit tests. Checkout the component readme file for more information.

More Repositories

1

webiny-js

Open-source serverless enterprise CMS. Includes a headless CMS, page builder, form builder, and file manager. Easy to customize and expand. Deploys to AWS.
TypeScript
7,286
star
2

Webiny

[NOT MAINTAINED] Main Webiny app responsible for parsing requests and bootstrapping other apps. Includes all the core ReactJs components.
JavaScript
121
star
3

action-conventional-commits

Ensures that all commits are following the conventional-commits standard.
TypeScript
50
star
4

commodo

Commodo is a library of higher order functions (HOFs) that let you create and compose rich data models
JavaScript
46
star
5

webiny-examples

Various demos showing you how make the best of Webiny
TypeScript
39
star
6

write-with-webiny

Webiny developer community writing program. Contribute to the open source movement by writing technical content. And get paid for doing so!!!
JavaScript
33
star
7

FolderBuilder

Folder builder tool to help developers in the planning stage of their projects
CSS
31
star
8

docs.webiny.com

Webiny documentation
JavaScript
29
star
9

github-actions-wac

GitHub Actions - Workflows as Code (WAC)
TypeScript
26
star
10

action-post-run

Enables executing custom commands once a workflow job has ended.
TypeScript
19
star
11

Htpl

PHP Template Engine using nothing more than HTML5 tags.
PHP
11
star
12

StdLib

[READ-ONLY] A PHP library that puts objective wrappers around string, array, url and datetime. (master at Webiny/Framework)
PHP
9
star
13

remove-aws-resources

Cleanup AWS resources created by Webiny
TypeScript
8
star
14

e-commerce-starter

JavaScript
6
star
15

Entity

[READ-ONLY] Mongo ORM for PHP. (master at Webiny/Framework)
PHP
6
star
16

GitSplit

A tool to automatically update readonly github repos, based on a provided master repo.
PHP
6
star
17

nextjs-starter-webiny

A starter for NextJS showcasing how to fetch data using Webiny Headless CMS
JavaScript
6
star
18

AnalyticsDb

[NOT MAINTAINED] A MongoDb powered time-series analytics library for PHP.
PHP
5
star
19

Platform

Webiny Platform is a multi website management platform.
4
star
20

website

JavaScript
4
star
21

OAuth2

[READ-ONLY] PHP component provides wrappers for several OAuth2 systems like Facebook, LinkedIn and Google. (master at Webiny/Framework)
PHP
4
star
22

benchmark

HTML
3
star
23

gatsby-starter-webiny

A starter for Gatsby showcasing how to fetch data using Webiny Headless CMS
JavaScript
3
star
24

ClassLoader

[READ-ONLY] PHP class loader (autoloader) that supports PEAR, PSR-0 and PSR-4 standards. (master at Webiny/Framework)
PHP
3
star
25

Rest

[READ-ONLY] A simple but powerful PHP REST library that doesn't get in the way. Supports rate control, crud, versioning, cache and json output. Create RESTful APIs with ease. (master at Webiny/Framework)
PHP
3
star
26

StaticRender

An app that renders your javascript/reactjs app server side when a request comes from a bot or a crawler.
JavaScript
2
star
27

Config

[READ-ONLY] PHP `Config` component creates `ConfigObject` instances from config files. Currently supported formats: INI, JSON, PHP, YAML and custom drivers. (master at Webiny/Framework)
PHP
2
star
28

NotificationManager

[NOT MAINTAINED] Webiny app that manages notifications. For now supports email notifications and slack messages.
JavaScript
2
star
29

Cache

[READ-ONLY] `Cache` is a PHP component give you ability to store different information into memory for a limited time. Supports memcache, APC, Couchbase and Redis. (master at Webiny/Framework)
PHP
2
star
30

CronManager

[NOT MAINTAINED] Webiny app to help you manage cron jobs and view the details regarding their execution.
JavaScript
2
star
31

predefined-blocks

A free library of over 100+ pre-built visual blocks for Webiny Page Builder
TypeScript
2
star
32

Amazon

[READ-ONLY] PHP wrapper for Amazon Web Services SDK. Currently only S3 component is being used. (master at Webiny/Framework)
PHP
2
star
33

Cli

[NOT MAINTAINED] Webiny CLI provides a simple interface to setup Webiny Platform, work with apps, modules, build, test and deploy your projects.
JavaScript
2
star
34

Mailer

[READ-ONLY] The `Mailer` is a PHP component that enables you to send emails using different supported protocols and functions (SMTP, mail(), sendmail). (master at Webiny/Framework)
PHP
2
star
35

webiny-bootstrap-react-portfolio

Webiny bootstrap react portfolio
TypeScript
2
star
36

BackupService

Simple PHP library to create and manage backups, and store them to AWS S3 bucket. It backups both files and MongoDb databases.
PHP
2
star
37

SystemMonitor

[NOT MAINTAINED] Webiny app that provide visibility into resource utilization of your servers as well as the performance of the APIs.
JavaScript
2
star
38

Annotations

[READ-ONLY] This simple PHP component lets you read/parse annotations/phpdoc assigned to a `class`, `method` or a `property`. (master at Webiny/Framework)
PHP
2
star
39

Storage

[READ-ONLY] Storage Component is a PHP storage abstraction layer that simplifies the way you work with files and directories. Supports Amazon AWS S3 and others. (master at Webiny/Framework)
PHP
2
star
40

Crypt

[READ-ONLY] The `Crypt` component provides PHP methods for generating random numbers and strings, also, password hashing and password hash verification and methods for encryption and decryption of strings. (master at Webiny/Framework)
PHP
2
star
41

Router

[READ-ONLY] PHP router component is used for mapping defined paths/urls to appropriate controllers or services. (master at Webiny/Framework)
PHP
2
star
42

Bootstrap

[READ-ONLY] PHP MVC bootstrap component for Webiny Framework. (master at Webiny/Framework) http://www.webiny.com/
PHP
1
star
43

FileManager

UI for managing all system files
JavaScript
1
star
44

coding-challenge-full-stack

TypeScript
1
star
45

WebsiteAnalytics

Library that gathers common analytics data about your website visitors
PHP
1
star
46

ServiceManager

[READ-ONLY] PHP component that enables you to define services and re-use them in any part of your code. With this component you can solve any dependency injection problems you might have. (master at Webiny/Framework)
PHP
1
star
47

Insight

App for tracking and scoring user activities. Helps you identify your power users.
JavaScript
1
star
48

Image

[READ-ONLY] PHP image manipulation library. You can crop, rotate, resize, create thumbnails. (master at Webiny/Framework)
PHP
1
star
49

Login

[NOT MAINTAINED] RESTful login application.
PHP
1
star
50

custom-website-context-example

Demonstrate the use of custom React contexts in the Website app, and how page elements can hook into them.
TypeScript
1
star
51

Hrc

Cache management layer where cache rules are based on incoming HTTP request.
PHP
1
star
52

webiny-theme-template

Scaffolding for building a new Webiny CMS theme
CSS
1
star
53

EventManager

[READ-ONLY] EventManager is a PHP component that allows you to easily manage events throughout your application. (master at Webiny/Framework)
PHP
1
star
54

webiny-semantic-release

A tool for automated publishing of semantically correct versions of your packages.
JavaScript
1
star
55

AppInstaller

Composer plugin to install Webiny apps
PHP
1
star
56

Logger

[READ-ONLY] PHP PSR-3 log component. You can use sockets, email and other types for login different information. (master at Webiny/Framework)
PHP
1
star
57

BackupApp

[NOT MAINTAINED] Webiny app that automatically backups your files and database to S3 on a daily, weekly and monthly basis.
JavaScript
1
star
58

SAM

Scripts and Actions Manager - manage your frontend 3rd JavaScript via a UI
JavaScript
1
star
59

Http

[READ-ONLY] Http is a PHP component provides an objective approach to working with HTTP request, response and cache control. (master at Webiny/Framework)
PHP
1
star
60

TemplateEngine

[READ-ONLY] PHP `TemplateEngine` component provides a layer for rendering view templates. Currently supports Smarty, but you can easily integrate Twig or some other. (master at Webiny/Framework)
PHP
1
star
61

Cms

Webiny Content Management System
JavaScript
1
star
62

Demo

[NOT MAINTAINED] Demo app for Webiny platform.
JavaScript
1
star
63

Mongo

[READ-ONLY] MongoDB PHP driver/layer. (master at Webiny/Framework)
PHP
1
star
64

Security

[READ-ONLY] The PHP security component is a layer that takes care of the authentication and authorization processes for you. (master at Webiny/Framework)
PHP
1
star
65

TwitterOAuth

[READ-ONLY] PHP component provides a wrapper for Twitter OAuth server. (master at Webiny/Framework)
PHP
1
star