Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
SvenAlHamad committed Sep 19, 2014
0 parents commit 47ec216
Show file tree
Hide file tree
Showing 711 changed files with 62,572 additions and 0 deletions.
39 changes: 39 additions & 0 deletions .gitattributes
@@ -0,0 +1,39 @@
# Auto detect text files and perform LF normalization

* text=auto

*.html text diff=html
*.css text
*.js text
*.sql text
*.php text
*.md text
*.txt text
*.tpl text diff=html
*.json text
*.pdf diff=astextplain
*.h text
*.sh text
*.less text
*.svg text
*.yml text
*.xml text
Makefile text
Procfile text
*.c text
*.cfg text
*.coffee text
*.ini text

*.png binary
*.jpg binary
*.gif binary
*.bmp binary
*.bz2 binary
*.jar binary
*.jpe binary
*.tar.gz binary
*.zip binary

*.gitattributes text
*.gitignore text
169 changes: 169 additions & 0 deletions .gitignore
@@ -0,0 +1,169 @@
#################
## Eclipse
#################

*.pydevproject
.project
.metadata
bin/
tmp/
*.tmp
*.bak
*.swp
*~.nib
local.properties
.classpath
.settings/
.loadpath

# External tool builders
.externalToolBuilders/

# Locally stored "Eclipse launch configurations"
*.launch

# CDT-specific
.cproject

# PDT-specific
.buildpath


#################
## Visual Studio
#################

## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.

# User-specific files
*.suo
*.user
*.sln.docstates

# Build results
[Dd]ebug/
[Rr]elease/
*_i.c
*_p.c
*.ilk
*.meta
*.obj
*.pch
*.pdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.vspscc
.builds
*.dotCover

# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opensdf
*.sdf

# Visual Studio profiler
*.psess
*.vsp

# ReSharper is a .NET coding add-in
_ReSharper*

# Installshield output folder
[Ee]xpress

# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html

# Click-Once directory
publish

# Others
[Bb]in
[Oo]bj
sql
TestResults
*.Cache
ClientBin
stylecop.*
~$*
*.dbmdl
Generated_Code #added for RIA/Silverlight projects

# Backup & report files from converting an old project file to a newer
# Visual Studio version. Backup files are not needed, because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML



############
## Windows
############

# Windows image file caches
Thumbs.db

# Folder config file
Desktop.ini


#############
## Python
#############

*.py[co]

# Packages
*.egg
*.egg-info
dist
build
eggs
parts
bin
var
sdist
develop-eggs
.installed.cfg

# Installer logs
pip-log.txt

# Unit test / coverage reports
.coverage
.tox

#Translations
*.mo

#Mr Developer
.mr.developer.cfg

# Mac crap
.DS_Store

# SVN
.svn

# PHP Storm
.idea/

# Webiny
library/Webiny/webiny.yaml.parsed
6 changes: 6 additions & 0 deletions CHANGELOG.md
@@ -0,0 +1,6 @@
CHANGELOG
=========

1.0.0-RC1
---------
* Initial version
4 changes: 4 additions & 0 deletions LICENSE
@@ -0,0 +1,4 @@
Copyright (c) 2013-2014 Webiny LTD
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
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.
120 changes: 120 additions & 0 deletions README.md
@@ -0,0 +1,120 @@
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.

## Requirements

Webiny Framework requires PHP 5.4 or later, PHP 5.5 is recommended.

## 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.

## Safe for production

For the time being, most of the components are still in testing phase and are **not considered to be safe for production**. This is an early developer release where we want to present our code to others and maybe get some help and feedback. Also, if you are interested in joining our small team, please send an email to sven@webiny.com. In the meantime, you can always track us on GitHub.

## 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](src/Webiny/Component/Amazon)
- currently supports implementation of Amazon S3
- [Annotations](src/Webiny/Component/Annotations)
- component for parsing annotations from a `class`, `method` or a `property`
- [Cache](src/Webiny/Component/Cache)
- provides several caching libraries like Apc, Couchbase, Memcache and Redis
- [ClassLoader](src/Webiny/Component/ClassLoader)
- a PSR-0, PSR-4 and PEAR class loader
- [Config](src/Webiny/Component/Config)
- a very handy library for parsing YAML, INI, JSON and PHP configuration files
- [Crypt](src/Webiny/Component/Crypt)
- library for encoding, decoding and validating hashes
- [Entity](src/Webiny/Component/Entity)
- an ORM layer (currently only supports MongoDB)
- [EventManager](src/Webiny/Component/EventManager)
- want to do event-based development, this is a library for you
- [Http](src/Webiny/Component/Http)
- library for parsing all data from an HTTP request
- will soon also support building an HTTP response
- [Image](src/Webiny/Component/Image)
- library for image manipulation
- [Loggger](src/Webiny/Component/Logger)
- a component for handling logging during code execution
- [Mailer](src/Webiny/Component/Mailer)
- component for sending emails
- [Mongo](src/Webiny/Component/Mongo)
- MongoDB class wrapper
- [OAuth2](src/Webiny/Component/OAuth2)
- library for working with OAuth2, currently supports Facebook, LinkedIn and Google+
- [REST](src/Webiny/Component/Rest)
- fully featured REST library with caching, security and rate control
- [Router](src/Webiny/Component/Router)
- handles defining, parsing, creating and matching url routes
- [Security](src/Webiny/Component/Security)
- provides authorization and authentication layer
- supports Http, Web form, Twitter and OAuth2 authentication
- [ServiceManager](src/Webiny/Component/ServiceManager)
- want to write truly service based, loosely-coupled code, this library provides that
- [StdLib](src/Webiny/Component/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](src/Webiny/Component/Storage)
- storage abstraction layer that simplifies the way you work with files and directories
- supports local file system and Amazon S3
- [TemplateEngine](src/Webiny/Component/TemplateEngine)
- provides a layer for rendering view templates and defining template plugins and manipulators
- [TwitterOAuth](src/Webiny/Component/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.

Install the component
---------------------
The best way to install the component is using Composer.

```json
{
"require": {
"webiny/framework": "1.0.*"
}
}
```
For additional versions of the package, visit the [Packagist page](https://packagist.org/packages/webiny/framework).
Optionally you can add `"minimum-stability": "dev"` flag to your composer.json.

Once you have your `composer.json` file in place, just run the install command.

$ php composer.phar install

To learn more about Composer, and how to use it, please visit [this link](https://getcomposer.org/doc/01-basic-usage.md).

Alternatively, you can also do a `git checkout` of the repo.

0 comments on commit 47ec216

Please sign in to comment.