Skip to content

Instantly share code, notes, and snippets.

View anandkunal's full-sized avatar
🐨

Kunal Anand anandkunal

🐨
View GitHub Profile
RewriteEngine on
RewriteCond $1 !^(index\.php)
RewriteRule ^(.*)$ index.php/$1 [L]
<?
include("toro.php");
// Domain object, not included, just for following along
include("domain/user.php");
class V1UserCreateHandler extends ToroHandler {
private function fail($error_type="") {
echo json_encode(array("success" => false, "error_type" => $error_type));
exit;
<?php
Toro::serve(array(
"/" => "SplashHandler",
"/catalog/page/:number" => "CatalogHandler",
"/product/:alpha" => "ProductHandler",
"/manufacturer/:string" => "ManufacturerHandler"
));
<?php
class ExampleHandler {
function get() {}
function post() {}
function get_xhr() {}
function post_xhr() {}
}
<?php
// Fired for 404 errors
ToroHook::add("404", function() {});
// Before/After callbacks in order
ToroHook::add("before_request", function() {});
ToroHook::add("before_handler", function() {});
ToroHook::add("after_handler", function() {});
ToroHook::add("after_request", function() {});
@anandkunal
anandkunal / simple_reverse_proxy.go
Created September 4, 2012 21:12
Simple reverse proxy in Go.
package main
import (
"log"
"net/http"
"net/http/httputil"
"net/url"
)
func main() {
package com.acme;
import com.prevoty.*;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
type (
RPC struct {
cache map[string]string
requests *Requests
mu *sync.RWMutex
}
CacheItem struct {
Key string
Value string
func NewRPC() *RPC {
return &RPC{
cache: make(map[string]string),
requests: &Requests{},
mu: &sync.RWMutex{},
}
}
func (r *RPC) Get(key string, resp *CacheItem) (err error) {
r.mu.RLock()
defer r.mu.RUnlock()
cacheValue, found := r.cache[key]
if !found {
return NotFoundError
}