Skip to content

Instantly share code, notes, and snippets.

Providers: An Introduction

Providers is a concept that was introduced with Symphony 2.3 which allows extensions to natively provide new Data Source types. This allowed for a more seamless experience for users and opened up a world of possibilities for extension developers. The upcoming Symphony 2.3.1 release brings Providers to Events as well, allowing developers to provide new event types selectable from the native Event editor.

For Users

For users, the benefits are more flexible and powerful DataSources and Events that can start to do things that previously required custom code. Extensions such as Cacheable DataSource, Union DataSource and Remote DataSource all bring powerful functionality to the fingertips of every Symphony ninja (and those in training). The addition of Events means that we can now create extensions that abstract common API's (such as Github) to read and write information without any knowledge of the underlying API.

For Developers

@brendo
brendo / Symphony232.md
Last active October 12, 2015 19:28
Symphony 2.3.2 Release Notes

Symphony 2.3.2 Release Notes

Final

  • Track JIT 1.18
  • #1695 - Set Email Gateways to be lowercase
  • Add curl_error to the Gateway class, helps debug timeouts better!
  • Fix potential authenticated SQL injection attack on the Authors page

RC2

Symphony 2.3.3 Release Notes

Final (July 12th)

  • Update jQuery to 2.0.3
  • Add removeFromHeadByPosition() and Head() functions to the HTMLPage class (@brendo)
  • Remove all images from Symphony's assets. Replace with Data URI's and CSS (@brendo)

Release Candidate 3 (July 1st)

/*
* Import Driver for type: DateTime
*/
require_once(__DIR__ . '/ImportDriver_default.php');
class ImportDriver_datetime extends ImportDriver_default {
/**
* Constructor
@brendo
brendo / class.mysql.php
Last active December 16, 2015 13:19
Improved Symphony MySQL Driver - Uses `mysqli` instead of `mysql`. - Supports a `master`, `slave` setup where the master accepts all writes, and the slaves processes reads To use, add an additional section to your config, `database_slave` which has the same details as `database`.
<?php
/**
* @package toolkit
*/
/**
* The DatabaseException class extends a normal Exception to add in
* debugging information when a SQL query fails such as the internal
* database error code and message in additional to the usual
<!DOCTYPE html>
<html>
<head>
<title>Virgin Australia - Flight Status Clock</title>
</head>
<body>
<header>
<form>
<h2>Flights landing at </h2>
<select>
MIME-Version: 1.0
Sender: me@bloodbone.ws
Received: by 10.217.106.134 with HTTP; Tue, 24 Sep 2013 02:47:04 -0700 (PDT)
X-Originating-IP: [124.170.95.210]
Date: Tue, 24 Sep 2013 19:47:04 +1000
Delivered-To: me@bloodbone.ws
X-Google-Sender-Auth: 8OEwJV8864KznHrqgw4LS4aZAS0
Message-ID: <CAEv1pw8Ef8q3OjS76Hyi4gE5BYZ6quaq87U7NUGsekqO_d_Rtg@mail.gmail.com>
Subject:

It doesn't take very much to get Symphony running on your server, and most commercial hosts easily meet the minimum requirements:

  • PHP 5.2 or above
  • PHP's LibXML module, with the XSLT extension enabled (--with-xsl)
  • MySQL 5.0 or above
  • An Apache or Litespeed webserver
  • Apache's mod_rewrite module or equivalent
Optional Server Capabilities

The following are not required to run Symphony, but will help you take advantage of some of the system's more advanced features. Both are fairly widely supported, so chances are your server is already good to go.

@brendo
brendo / package.sh
Created March 28, 2014 23:51
Symphony Build Script
#!/bin/bash
DOZIP=false
DODELETE=false
DODOCS=false
while getopts "v:zrd" opt; do
case $opt in
v)
VERSION=$OPTARG
@brendo
brendo / SymphonyArchitecture.md
Created April 13, 2014 06:12
Symphony Architecture

Symphony

Symphony's architecture was first concieved back in the 2000's and it's now starting to show it's age. While the architecture works, and works quite well for simple sites, and those that don't need heavy integration, it starts to have obvious flaws and gaps when trying to use it in a more modern way.

Back in 2009, cloud hosting was in it's infancy, PHP frameworks were few and far between and PHP itself was not as powerful and natural as it is today.

It's time to rethink the architecture, and think about how it should be in 2014.

Flaws