Core Classes
We will briefly describe here the core classes provided by the framework. From a developer point of view, the most important ones should be PluginsFramework\Plugin (from which your own plugin will extend), and all the Services\* classes that gives you quick access to the application state.
Main Namespace is \Pydio, it should be prefixed inside all classes below.
Controller¶
This package contains the main Controller class (C of MVC) plus various alternative tools to run pydio action, either on command line or after the connection is closed.
- Controller\CliRunner
- Controller\Controller
- Controller\HTMLWriter
- Controller\ProgressBarCLI
- Controller\ShutdownScheduler
- Controller\UnixProcess
Exception¶
Pydio specific exceptions
- Exception\ActionNotFoundException
- Exception\AuthRequiredException
- Exception\DBConnectionException
- Exception\ForbiddenCharacterException
- Exception\LoggingException
- Exception\LoginException
- Exception\NoActiveWorkspaceException
- Exception\PydioException
- Exception\PydioPromptException
- Exception\PydioUserAlertException
- Exception\RepositoryLoadException
- Exception\ResponseEmissionException
- Exception\RouteNotFoundException
- Exception\UserInterruptException
- Exception\UserNotFoundException
- Exception\WorkspaceAuthRequired
- Exception\WorkspaceForbiddenException
- Exception\WorkspaceNotFoundException
Http¶
This package handles all the communication to\from server. This is entirely based on PSR-7 interfaces (ServerRequestInterface, ResponseInterface), using the Zend\Diactoros implementation (loaded via Composer). Additionally, the Router is based on FastRoute package (loaded via composer as well).
- Http*Base* : A static class in charge of boot the Server object.
-
Http*Cli* : a specific "server" that encapsulates pydio middlewares when running via Command Line.
- Http\Cli\AuthCliMiddleware
- Http\Cli\CliMiddleware
- Http\Cli\CliServer
- Http\Cli\Command
- Http\Cli\FreeArgvOptions
- Http\Cli\FreeDefOptions
-
Http*Dav* : dedicated server for serving workspace data via WebDAV.
- Http\Dav\AuthBackendBasic
- Http\Dav\AuthBackendDigest
- Http\Dav\BrowserPlugin
- Http\Dav\Collection
- Http\Dav\DAVResponse
- Http\Dav\DAVServer
- Http\Dav\Node
- Http\Dav\NodeLeaf
- Http\Dav\RootCollection
-
Http*Message* : Various classes encapsulating specific response messages
-
Http\Message\ExternalUploadedFile
- Http\Message\JsActionTrigger
- Http\Message\LoggingResult
- Http\Message\Message
- Http\Message\RegistryMessage
- Http\Message\ReloadMessage
- Http\Message\ReloadRepoListMessage
- Http\Message\UserMessage
- Http\Message\XMLDocMessage
- Http\Message\XMLMessage
-
Http*Middleware* : Main middleware stacked when calling a request from server
- Http\Middleware\AuthMiddleware
- Http\Middleware\ITopLevelMiddleware
- Http\Middleware\SapiMiddleware
- Http\Middleware\SecureTokenMiddleware
- Http\Middleware\SessionMiddleware
- Http\Middleware\SessionRepositoryMiddleware
- Http\Middleware\WorkspaceAuthMiddleware
-
Http*Response* : Special response objects that can be easily serialized to a given format (namely XML or JSON)
- Http\Response\AsyncResponseStream
- Http\Response\CLISerializableResponseChunk
- Http\Response\FileReaderResponse
- Http\Response\JSONSerializableResponseChunk
- Http\Response\SerializableResponseChunk
- Http\Response\SerializableResponseStream
- Http\Response\XMLDocSerializableResponseChunk
- Http\Response\XMLSerializableResponseChunk
-
Http*Rest* : Specific middlewares when accessing via REST
- Http\Rest\ApiRouter
- Http\Rest\RestApiMiddleware
- Http\Rest\RestApiServer
- Http\Rest\RestAuthMiddleware
- Http*Server* : the base class of our PSR-7 server
- Http*SimpleRestResourceRouter*: Simpel router for rest resources
- Http*TopLevelRouter* : Top level router using plugins\core.ajaxplorer\routes*.json files to load into FastRoute
- Http*Wopi* : Specific middlewares for serving files via the Wopi protocol (used for Collabora)
- Http\Wopi\AuthFrontend
- Http\Wopi\AuthMiddleware
- Http\Wopi\Middleware
- Http\Wopi\Router
- Http\Wopi\Server
Model¶
This package contains some Model classes or interfaces for various aspects of the application (users, workpaces, etc). Interfaces are generally implemented inside the plugins.
- Model\AddressBookItem
- Model\Context
- Model\ContextInterface
- Model\ContextProviderInterface
- Model\FilteredRepositoriesList
- Model\FilteredUsersList
- Model\RepositoryInterface
- Model\UserInterface
PluginFramework¶
Core framework for detecting plugins and launching the plugin registry. This is really the heart of the machine.
- PluginFramework\CoreInstanceProvider
- PluginFramework\Plugin
- PluginFramework\PluginsService
- PluginFramework\SqlTableProvider
Serializer¶
Utils used for serializing model objects into specific formats
- Serializer\NodeXML
- Serializer\RepositoryXML
- Serializer\UserXML
Services¶
Singletons available throughout the application, for getting or setting the datamodel objects.
- Services\ApiKeysService
- Services\ApplicationState
- Services\AuthService
- Services\CacheService
- Services\ConfService
- Services\LocalCache
- Services\LocaleService
- Services\RepositoriesCache
- Services\RepositoryService
- Services\RolesService
- Services\SessionService
- Services\UsersService
Utils¶
Many tools for helping with string manipulation, request parsing, etc.
- Utils*Crypto*
- Utils\Crypto\Key
- Utils\Crypto\ZeroPaddingRijndael
- Utils\Crypto
- Utils*DBHelper*
- Utils*FileHelper*
- Utils*Http*
- Utils\Http\BruteForceHelper
- Utils\Http\captcha_words.txt
- Utils\Http\CaptchaProvider
- Utils\Http\CookiesHelper
- Utils\Http\UserAgent
- Utils*Reflection*
- Utils\Reflection\DiagnosticRunner
- Utils\Reflection\DocsParser
- Utils\Reflection\LocaleExtractor
- Utils\Reflection\PydioSdkGenerator
- Utils*TextEncoder*
- Utils\Vars
- Utils\Vars\InputFilter
- Utils\Vars\OptionsHelper
- Utils\Vars\PasswordEncoder
- Utils\Vars\PathUtils
- Utils\Vars\StatHelper
- Utils\Vars\StringHelper
- Utils\Vars\UrlUtils
- Utils\Vars\VarsFilter
- Utils\Vars\XMLFilter
- Utils\XMLHelper