-
Notifications
You must be signed in to change notification settings - Fork 53
Classes description
Miloslav Hůla edited this page Dec 4, 2021
·
4 revisions
Whole project source code is in the Milo\Github
namespace. Every class is in a separated file except for the exceptions. They are all in one file.
Milo\Github
- the core of this library
Api - sends GET, POST, HEAD... requests, decodes JSON responses
Paginator - helps to paginate through the responses which need it
Helpers - static helpers, not so interesting in user space
Strict - helper, ensures sanity object behaviour, allmost all classes uses it
Milo\Github\Http
- things for HTTP communication with GitHub API
IClient - interface of HTTP clients
AbstractClient - common functionality for a stream and cURL clients (abstract)
CurlClient - client which uses cURL
StreamClient - client which uses stream_get_contents()
CachedClient - client wrapper, cares about caching by ETag, If-Modified...
Message - common features for HTTP request and response (abstract)
Request - HTTP request envelope
Response - HTTP response envelope
Milo\Github\OAuth
- helpers for obtaining an OAuth token from Github
Configuration - configuration for token obtaining (client ID, client secret, toke scopes)
Token - OAuth token envelope
Login - redirects to user's permissions page, fetch the token, persists token
Milo\Github\Storages
- default session and cache storages and interfaces
ISessionStorage - session storage interface
SessionStorage - naive $_SESSION storage implementation
ICache - cache interface
FileCache - naive filesystem storage implementation