All Projects → joshangell → Falcon

joshangell / Falcon

Licence: mit
Enables Xkey / Hash-Two / Surrogate Key caching with Craft 2.x. Very experimental.

Projects that are alternatives of or similar to Falcon

craft-entriessubset
Craft field type plugin that extends the core Entries field type to give extra settings
Stars: ✭ 27 (+92.86%)
Mutual labels:  craftcms, craft-plugin
Craft3 Templateselect
A fieldtype that allows you to select a template from the site templates folder.
Stars: ✭ 18 (+28.57%)
Mutual labels:  craftcms, craft-plugin
craft-recipe
A comprehensive recipe FieldType for Craft CMS that includes metric/imperial conversion, portion calculation, and JSON-LD microdata support
Stars: ✭ 23 (+64.29%)
Mutual labels:  craftcms, craft-plugin
Plugin Installer
Composer installer for Craft CMS plugins
Stars: ✭ 22 (+57.14%)
Mutual labels:  craftcms, craft-plugin
Awesome
A collection of awesome Craft CMS plugins, articles, resources and shiny things.
Stars: ✭ 449 (+3107.14%)
Mutual labels:  craftcms, craft-plugin
routemap
DEPRECATED Returns a list of Craft/Vue/React route rules and entry & asset URLs for ServiceWorkers from Craft entries
Stars: ✭ 27 (+92.86%)
Mutual labels:  craftcms, craft-plugin
Commercemailer
ARCHIVED: For Craft Commerce. Makes it easy to create forms for sending carts, products and orders by email.
Stars: ✭ 8 (-42.86%)
Mutual labels:  craftcms, craft-plugin
craft-plugin-mix
Helper plugin for Laravel Mix in Craft CMS templates
Stars: ✭ 50 (+257.14%)
Mutual labels:  craftcms, craft-plugin
Craft Neo
A Matrix-like field type for Craft CMS that uses existing fields
Stars: ✭ 387 (+2664.29%)
Mutual labels:  craftcms, craft-plugin
Seomatic
DEPRECATED A turnkey SEO implementation for Craft CMS 2.x that is comprehensive, powerful, and flexible
Stars: ✭ 366 (+2514.29%)
Mutual labels:  craftcms, craft-plugin
transcoder
DEPRECATED Transcode videos to various formats, and provide thumbnails of the video
Stars: ✭ 24 (+71.43%)
Mutual labels:  craftcms, craft-plugin
Geomate
GeoMate is a friend in need for all things geolocation. IP to geo lookup, automatic redirects (based on country, continent, language, etc), site switcher... You name it.
Stars: ✭ 19 (+35.71%)
Mutual labels:  craftcms, craft-plugin
craft.doxter
Markdown editor and parser for Craft CMS
Stars: ✭ 80 (+471.43%)
Mutual labels:  craftcms, craft-plugin
craft-retour
Retour allows you to intelligently redirect legacy URLs, so that you don't lose SEO value when rebuilding & restructuring a website
Stars: ✭ 32 (+128.57%)
Mutual labels:  craftcms, craft-plugin
dospaces
DigitalOcean Spaces integration for Craft CMS
Stars: ✭ 31 (+121.43%)
Mutual labels:  craftcms, craft-plugin
Contact Form
Add a simple contact form to your Craft CMS site.
Stars: ✭ 294 (+2000%)
Mutual labels:  craftcms, craft-plugin
mailgun
Mailgun mailer adapter for Craft CMS.
Stars: ✭ 27 (+92.86%)
Mutual labels:  craftcms, craft-plugin
craft3-codemirror
Add the awesome in-browser code editor CodeMirror as a field type.
Stars: ✭ 17 (+21.43%)
Mutual labels:  craftcms, craft-plugin
Imager Craft
This plugin has been DEPRECATED. Check out Imager X instead.
Stars: ✭ 351 (+2407.14%)
Mutual labels:  craftcms, craft-plugin
Element Api
Create a JSON API/Feed for your elements in Craft.
Stars: ✭ 493 (+3421.43%)
Mutual labels:  craftcms, craft-plugin

This plugin was an experiment! It is now archived.

I advise you take a look at Upper for Craft 3 by the wonderful Oliver Stark.


Falcon plugin for Craft CMS

Make Craft fly. Well, stick a reverse proxy in front of it then auto-magically invalidate the right caches.

Installation

To install Falcon, follow these steps:

  1. Download & unzip the file and place the falcon directory into your craft/plugins directory
  2. -OR- do a git clone https://github.com/joshangell/falcon.git directly into your craft/plugins folder. You can then update it with git pull
  3. -OR- install with Composer via composer require joshangell/falcon
  4. Install plugin in the Craft Control Panel under Settings > Plugins
  5. The plugin folder should be named falcon for Craft to see it. GitHub recently started appending -master (the branch name) to the name of the folder for zip file downloads.
  6. Copy the code below into craft/app/etc/templating/BaseTemplate.php, inserting it after if ($cacheService) { ... } in the _includeElementInTemplateCaches method:
$falcon = craft()->getComponent('falcon_templates', false);
if ($falcon) {
    $falcon->includeElement($elementId);
}

Yes that was a core hack, which is always necessary on Craft 2.

Falcon works on Craft 2.4.x and Craft 2.5.x.

Falcon Overview

Currently very un-configurable.

The Varnish URL is set to http://0.0.0.0:8080/, the headers used are xkey specific, silly things are happening like Matrix blocks are getting their IDs sent out, there are no Tasks and custom keys aren’t purged.

But hey, this is basically still classed as an experiment.

Configuring Falcon

You need to do this in your layout:

{% falcon %}

<!DOCTYPE html>
<html>
    <head>...</head>
    <body>
        ...
    </body>
</html>
{% endfalcon %}

Then elsewhere:

{% extends "_layout" %}

{% falcon_addkey 'section:news' %}

{% block content %}
...
{% endblock %}

Using Falcon

-Insert text here-

Falcon Roadmap

These things need to happen before it can be considered ready for use:

  • Listen to specific entry on save, if new, send section:handle purge requests or whatever we do when doing the extra tagging during render.
  • Probably expand that whole thing to be configurable so that people can do whatever they like.
  • Make the xkey header bit configurable, as well as the actual purge tooling so that we can swap between fastly and BYO varnish.
  • Make cache interface configurable incl URL and type of interface.
  • Send PURGEs as Task so they can be queued up.
  • Check a configurable list of dis-allowed element types to ignore from auto element ID collection, like Matrix/Neo/SuperTable blocks.
  • Make a Craft 3 version without a core hack. Brandon said something about swapping out core components once that makes me think this is possible.

Brought to you by Josh Angell

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].