soq/linkmunch

一个URL缩短器

dev-master 2013-07-24 22:50 UTC

This package is not auto-updated.

Last update: 2024-09-24 03:44:00 UTC


README

### 前言 我刚刚注册了 linkmun.ch,它可能还没有完全正常工作。如果您使用的是 Linux,请编辑您的 /etc/hosts 文件,或者如果您使用的是 Windows,请编辑您的 C:\windows\system32\drivers\etc\hosts 文件,并在您选择的文本编辑器中添加以下内容

74.208.173.8 linkmun.ch

只有当 linkmun.ch 当前无法正常工作时,才需要此步骤

为 HootSuite 技术测试提供的框架

### 简介

此框架是根据 Hootsuite 提供的技术测试而构建的,那些疯狂的社会媒体人。有一个 API 可用,包含 3 个端点。还有一个客户端演示在 http://www.linkmun.ch

  • 如果您向 linkmun.ch/er 发送异步 POST 请求,您将收到一个缩短后的链接。
  • 如果您向 linkmun.ch/y 发送异步 POST 请求,您将收到完整的链接。
  • 如果您向 linkmun.ch/ah 发送异步 POST 请求,您将收到所有链接(短/长)。

除 /ah 之外的任何 POST 请求都应该包含一些以以下形式发送的数据

{ "url": "linkoridhere" }

/ah 不需要发送数据

提供链接后没有自动重定向,但可以轻松实现,因为这个应用程序是考虑可扩展性构建的。我内置了一个路由系统,该系统指向 URLController 控制器中的方法,以及 Symfony 的 Twig 模板系统,用于提供您可能希望实施的任何同步页面。

### 安装

#### Composer

{
    "require": {
        "soq/linkmunch": "dev-master"
    }
}

#### Git

git clone http://github.com/six0h/linkmun.ch.git linkmunch/

### 使用方法

#### 路由 路由在服务器端处理,并在 /web 目录中的 index.php 文件中直接定义。

如何在 index 文件中添加路由有明确的定义,并遵循以下顺序

$router->add('RouteName','URI','Method');

使用简单的 match 方法匹配实际客户端 URI 与您的路由

$router->match($_SERVER['REQUEST_URI']);

#### 控制器 整个应用程序通过一个类来控制,Controller/URLController.php 文件包含此类,所有方法都应通过路由系统映射。如果您目前不想将某个方法映射,则不要将其添加到路由系统中。

通过查看此文件中的演示代码应该相当清晰,一旦您看到了路由系统中定义的路由。确保在查看控制器之前查看路由系统,这样您就可以了解方法方面的内容。

#### 模板 已创建一个类来抽象化 Twig API。您可以从 Library/Template.php 调用 Template 类,它提供了一个 render 方法

$tpl = new Template();
$tpl->render('index.html.twig', array('paramtopass'=>'valtopass','anotherparam'=>'anotherval'));

#### 模型 目前,框架只包含一个模型,该模型位于 Model/URLModel.php 文件中。猜猜看这里发生了什么?神奇的宝宝!业务逻辑在这里发生。

### 传输

惊喜!这个小家伙包装了 zeromq,有一堆工人来施展魔法。我们当前的演示客户端将 POST 发送到我们的 API 端点,然后通过 ZeroMQ Router、Dealer、Replier 和最后(但并非最不重要的!)Requestor 进行中继。

多亏了 ZMQ,我们的消息传递以极快的速度进行。客户端可以优化以在性能更高的主机上更快地做出反应,但当前在响应方面进行了节流,以确保在更新客户端显示之前正确提交数据。

#### 代理 工人依赖于代理来从客户端中继消息。要在主目录中运行代理,请从终端中执行

php zmqBroker.php

#### 工人 您想要多少个工人?您需要多少个?与代理相同,但您可以使用以下方法启动任意数量的工人

php zmqWorker.php