Snuze core classes


The classes described here are in the \snuze namespace.

Snuze core class overview

The Snuze "core" classes are those that aren't part of a more specific component.

Most classes in the Snuze package share the SnuzeObject class as a common ancestor. This design is a little odd, but it serves to automatically give each object an internal unique ID, a standard way of identifying itself, and direct access to several logging methods.

The SnuzeObject class

The \snuze\SnuzeObject class is the ultimate ancestor of most objects in the Snuze package. It provides some debugging scaffolding, as described above. With the exception of SnuzeFactory, the other classes described in this section extend SnuzeObject.

The AuthenticationState class

The \snuze\AuthenticationState class holds information about the current authenticated session with the API server. This includes the Reddit account credentials, an AccessToken object, and a RateLimitBucket to track the status of the API's rate limit mechanism.

The RateLimitBucket class

The \snuze\RateLimitBucket class keeps track of the state of Reddit's rate limiter. The Reddit API allows users to make a certain number of requests in a given 10-minute period. When a request is made to the API, the response headers indicate how many requests remain in the current time slice, and when the bucket will be refilled.

The RequestSender class

The \snuze\RequestSender class is responsible for transmitting a given Request to Reddit's API server, updating the RateLimitBucket, and returning the server's JSON response to the caller.

The Snuze class

The \snuze\Snuze class is the public interface to Snuze. This is the object your script will create and interact with. See Using Snuze for a look at its methods and how to use them.

The SnuzeFactory class

The \snuze\SnuzeFactory class is responsible for accepting and validating an array of configuration parameters, setting up the environment, then building and returning a Snuze object. See Getting Started for an example of using SnuzeFactory to get a Snuze instance.