8fold / php-eventbrite-sdk
比官方Eventbrite SDK for PHP更容易且更完整的工具。
Requires
- guzzlehttp/guzzle: ~6.0
README
警告:我正在重新设计这个库的架构。我认为抽象已经到了让许多开发者难以理解的程度,这可能会发生(过于抽象,不够具体,难以快速掌握)。一些巧妙的设计可能会值得保留,但我认为使事物更具体、更直接也是值得的。如果您有任何建议或贡献,请随时提供。同时,我正在努力创建单元测试,因为我暂时离开去开发8fold的其他项目,当我回来时,我完全不知道这个库是如何工作的。 :) 这可不是什么好兆头。
8fold的Eventbrite SDK旨在为Eventbrite API的版本3提供一个简单而完整的包装。
注意:Eventbrite有一个同名的官方SDK。
设计考虑
- 约定优于配置:当模式出现时,将其提升为更高级的对象和方法,以便您无需填写大量方法参数即可使用库。
- 只在必要时调用:API有一个节流(在特定时间段内可以执行的最大调用次数);因此,库通过在本地缓存值来最小化调用次数。是否再次调用API将由您,即开发者来决定。
Composer安装
"require": {
"8fold/eventbrite-sdk-php": "*"
}
概览
此库旨在在定义每个类定义中包含的内容时反映Eventbrite API文档。例如
// to get all the organizers GET /users/:id/organizers/ // to get all the events owned by the user GET /users/:id/owned_events
转换为
// creates an Organization object $eb = Eventbrite::setAuthToken(YOUR_AUTH_TOKEN, true); // to get all the organizers $eb->user->organizers // to get all the events owned by the user $eb->user->events;
事件详细信息
POST /events/
// TODO: Verify $event = new Event(); $event->name_html = 'Hello world!'; $event->start_utc = '2017-01-01T01:00:00Z'; $event->start_timezone = 'America/New York'; $event->end_utc = '2017-01-02T01:00:00Z'; $event->end_timezone = 'America/New York'; $event->currencty = 'USD'; $event->save();
GET /events/:id/
$event = Event::find(Eventbrite, :id);
POST /events/:id/
注意:Eventbrite目前不支持PATCH或PUT;但是,SDK只传输自上次保存以来更改的属性。如果您从未保存,您不会影响Eventbrite存储的事件。
$event = Event::find(Eventbrite, :id); $event->name_html = 'Oh, hi Mark.'; $event->save();
门票类别
GET /events/:id/ticket_classes/
$event = Event::find(Eventbrite, :id); $ticketClasses = $event->ticketClasses;
POST /events/:id/ticket_classes/
$event = Event::find(Eventbrite, :id); $ticket_classes = $event->ticketClasses;
GET /events/:id/ticket_classes/:ticket_class_id/
$event = Event::find(Eventbrite, :id); $ticketClass = $event->ticketClassWithId(:ticket_class_id); // OR $ticketClass = TicketClass::find($event, :ticket_class_id);
POST /events/:id/ticket_classes/:ticket_class_id/
$event = Event::find(Eventbrite, :id); $ticket_classes = $event->ticket_classes; $ticketClass = $ticket_classes[0]; $ticketClass->cost = 2000; // USD only right now $ticketClass->save();
折扣
GET /events/:id/discounts/
$event = Event::find(Eventbrite, :id); $discounts = $event->discounts;
GET /events/:id/discounts/:discount_id/
$event = Event::find(Eventbrite, :id); $discount = $event->ticketClassWithId(:discount_id); // OR $discount = TicketClass::find($event, :discount_id);
显示设置
GET /events/:id/display_settings/
$event = Event::find(Eventbrite, :id); $displaySettings = $event->display_settings;
访问代码
GET /events/:id/access_codes/
$event = Event::find(Eventbrite, :id); $accessCodes = $event->access_codes;
参与者
GET /events/:id/attendees/
$event = Event::find(Eventbrite, :id); $attendees = $event->attendees;
事件待办事项
GET /events/search/
POST /events/:id/publish/
POST /events/:id/unpublish/
POST /events/:id/cancel/
DELETE /events/:id/
POST /events/:id/display_settings/
DELETE /events/:id/ticket_classes/:ticket_class_id/
GET /events/:id/canned_questions/
GET /events/:id/questions/
GET /events/:id/questions/:id/
GET /events/:id/attendees/:attendee_id/
GET /events/:id/orders/
POST /events/:id/discounts/
POST /events/:id/discounts/:discount_id/
GET /events/:id/public_discounts/
POST /events/:id/public_discounts/
GET /events/:id/public_discounts/:discount_id/
POST /events/:id/public_discounts/:discount_id/
DELETE /events/:id/public_discounts/:discount_id/
POST /events/:id/access_codes/
GET /events/:id/access_codes/:access_code_id/
POST /events/:id/access_codes/:access_code_id/
GET /events/:id/transfers/
GET /events/:id/teams/
GET /events/:id/teams/:id/
GET /events/:id/teams/:id/attendees/