phpcr/src/PHPCR/RepositoryInterface.php
Copyright 2008-2011 Karsten Dambekalns karsten@typo3.org
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
\PHPCR\RepositoryInterface
The Repository object is usually acquired through an implementation of the RepositoryFactoryInterface.
PHPCR Note: This interface has been simplified compared to JCR:
- getDescriptor returns array on multivalue, single variable otherwise
- removed isSingleValueDescriptor
- removed getDescriptorValue and getDescriptorValues as ValueInterface has been dropped. Use getDescriptor to get the variable value.
- Api
Constants

SPEC_VERSION_DESC
= "jcr.specification.version"
For JCR 2.0 the value of this descriptor is the string "2.0".
- Api

SPEC_NAME_DESC
= "jcr.specification.name"
For JCR 2.0 the value of this descriptor is the string "Content Repository for Java Technology API".
- Api

REP_VENDOR_DESC
= "jcr.repository.vendor"
The descriptor returned for this key is a String.
- Api

REP_VENDOR_URL_DESC
= "jcr.repository.vendor.url"
The descriptor returned for this key is a String.
- Api

REP_NAME_DESC
= "jcr.repository.name"
The descriptor returned for this key is a String.
- Api

REP_VERSION_DESC
= "jcr.repository.version"
The descriptor returned for this key is a String.
- Api

WRITE_SUPPORTED
= "write.supported"
Returns true if and only if repository content can be updated through the JCR API (as opposed to having read-only access).
- Api

IDENTIFIER_STABILITY
= "identifier.stability"
Returns one of the following RepositoryInterface constants indicating the stability of identifiers:
- IDENTIFIER_STABILITY_METHOD_DURATION - Identifiers may change between method calls.
- IDENTIFIER_STABILITY_SAVE_DURATION - Identifers are guaranteed stable within a single save/refresh cycle.
- IDENTIFIER_STABILITY_SESSION_DURATION - Identifiers are guaranteed stable within a single session.
- IDENTIFIER_STABILITY_INDEFINITE_DURATION - Identifers are guaranteed to be stable forever.
- Api

IDENTIFIER_STABILITY_METHOD_DURATION
= "identifier.stability.method.duration"
Indicates that identifiers may change between method calls.
- Api

IDENTIFIER_STABILITY_SAVE_DURATION
= "identifier.stability.save.duration"
Indicates that identifiers are guaranteed stable within a single save/refresh cycle.
- Api

IDENTIFIER_STABILITY_SESSION_DURATION
= "identifier.stability.session.duration"
Indicates that identifiers are guaranteed stable within a single session.
- Api

IDENTIFIER_STABILITY_INDEFINITE_DURATION
= "identifier.stability.indefinite.duration"
Indicates that identifiers are guaranteed to be stable forever.
- Api

OPTION_XML_EXPORT_SUPPORTED
= "option.xml.export.supported"
Returns true if and only if XML export is supported.
- Api

OPTION_XML_IMPORT_SUPPORTED
= "option.xml.import.supported"
Returns true if and only if XML import is supported.
- Api

OPTION_UNFILED_CONTENT_SUPPORTED
= "option.unfiled.content.supported"
Returns true if and only if unfiled content is supported.
- Api

OPTION_VERSIONING_SUPPORTED
= "option.versioning.supported"
Returns true if and only if full versioning is supported.
- Api

OPTION_SIMPLE_VERSIONING_SUPPORTED
= "option.simple.versioning.supported"
Returns true if and only if simple versioning is supported.
- Api

OPTION_ACTIVITIES_SUPPORTED
= "option.activities.supported"
Returns true if and only if activities are supported.
- Api

OPTION_BASELINES_SUPPORTED
= "option.baselines.supported"
Returns true if and only if configurations and baselines are supported.
- Api

OPTION_ACCESS_CONTROL_SUPPORTED
= "option.access.control.supported"
Returns true if and only if access control is supported.
- Api

OPTION_LOCKING_SUPPORTED
= "option.locking.supported"
Returns true if and only if locking is supported.
- Api

OPTION_OBSERVATION_SUPPORTED
= "option.observation.supported"
Returns true if and only if asynchronous observation is supported.
- Api

OPTION_JOURNALED_OBSERVATION_SUPPORTED
= "option.journaled.observation.supported"
Returns true if and only if journaled observation is supported.
- Api

OPTION_RETENTION_SUPPORTED
= "option.retention.supported"
Returns true if and only if retention and hold are supported.
- Api

OPTION_LIFECYCLE_SUPPORTED
= "option.lifecycle.supported"
Returns true if and only if lifecycles are supported.
- Api

OPTION_TRANSACTIONS_SUPPORTED
= "option.transactions.supported"
Returns true if and only if transactions are supported.
- Api

OPTION_WORKSPACE_MANAGEMENT_SUPPORTED
= "option.workspace.management.supported"
Returns true if and only if workspace management is supported.
- Api

OPTION_UPDATE_PRIMARY_NODETYPE_SUPPORTED
= "option.update.primary.nodetype.supported"
Returns true if and only if the primary node type of an existing node can be updated.
- Api

OPTION_UPDATE_MIXIN_NODETYPES_SUPPORTED
= "option.update.mixin.nodetypes.supported"
Returns true if and only if the mixin node types of an existing node can be added and removed.
- Api

OPTION_SHAREABLE_NODES_SUPPORTED
= "option.shareable.nodes.supported"
Returns true if and only if the creation of shareable nodes is supported.
- Api

OPTION_NODE_TYPE_MANAGEMENT_SUPPORTED
= "option.node.type.management.supported"
Returns true if and only if node type management is supported.
- Api

OPTION_NODE_AND_PROPERTY_WITH_SAME_NAME_SUPPORTED
= "option.node.and.property.with.same.name.supported"
Returns true if and only if node and property with same name is supported.
- Api

NODE_TYPE_MANAGEMENT_INHERITANCE
= "node.type.management.inheritance"
Returns one of the following RepositoryInterface constants indicating the level of support for node type inheritance:
NODE_TYPE_MANAGEMENT_INHERITANCE_MINIMAL Registration of primary node types is limited to those which have onlynt:base as supertype. Registration of mixin node types is limited to those without any supertypes.
NODE_TYPE_MANAGEMENT_INHERITANCE_SINGLE Registration of primary node types is limited to those with exactly one supertype. Registration of mixin node types is limited to those with at most one supertype.
NODE_TYPE_MANAGEMENT_INHERITANCE_MULTIPLE Primary node types can be registered with one or more supertypes. Mixin node types can be registered with zero or more supertypes.
- Api

NODE_TYPE_MANAGEMENT_INHERITANCE_MINIMAL
= "node.type.management.inheritance.minimal"
Indicates that registration of primary node types is limited to those which have only nt:base as supertype. Registration of mixin node types is limited to those without any supertypes.
- Api

NODE_TYPE_MANAGEMENT_INHERITANCE_SINGLE
= "node.type.management.inheritance.single"
Indicates that registration of primary node types is limited to those with exactly one supertype. Registration of mixin node types is limited to those with at most one supertype.
- Api

NODE_TYPE_MANAGEMENT_INHERITANCE_MULTIPLE
= "node.type.management.inheritance.multiple"
Indicates that primary node types can be registered with one or more supertypes. Mixin node types can be registered with zero or more supertypes.
- Api

NODE_TYPE_MANAGEMENT_OVERRIDES_SUPPORTED
= "node.type.management.overrides.supported"
Returns true if and only if override of inherited property or child node definitions is supported.
- Api

NODE_TYPE_MANAGEMENT_PRIMARY_ITEM_NAME_SUPPORTED
= "node.type.management.primary.item.name.supported"
Returns true if and only if primary items are supported.
- Api

NODE_TYPE_MANAGEMENT_ORDERABLE_CHILD_NODES_SUPPORTED
= "node.type.management.orderable.child.nodes.supported"
Returns true if and only if preservation of child node ordering is supported.
- Api

NODE_TYPE_MANAGEMENT_RESIDUAL_DEFINITIONS_SUPPORTED
= "node.type.management.residual.definitions.supported"
Returns true if and only if residual property and child node definitions are supported.
- Api

NODE_TYPE_MANAGEMENT_AUTOCREATED_DEFINITIONS_SUPPORTED
= "node.type.management.autocreated.definitions.supported"
Returns true if and only if autocreated properties and child nodes are supported.
- Api

NODE_TYPE_MANAGEMENT_SAME_NAME_SIBLINGS_SUPPORTED
= "node.type.management.same.name.siblings.supported"
Returns true if and only if same-name sibling child nodes are supported.
- Api

NODE_TYPE_MANAGEMENT_PROPERTY_TYPES
= "node.type.management.property.types"
Returns an array holding the PropertyType constants for the property types (including UNDEFINED, if supported) that a registered node type can specify, or a zero-length array if registered node types cannot specify property definitions.
- Api

NODE_TYPE_MANAGEMENT_MULTIVALUED_PROPERTIES_SUPPORTED
= "node.type.management.multivalued.properties.supported"
Returns true if and only if multivalue properties are supported.
- Api

NODE_TYPE_MANAGEMENT_MULTIPLE_BINARY_PROPERTIES_SUPPORTED
= "node.type.management.multiple.binary.properties.supported"
Returns true if and only if registration of a node types with more than one BINARY property is permitted.
- Api

NODE_TYPE_MANAGEMENT_VALUE_CONSTRAINTS_SUPPORTED
= "node.type.management.value.constraints.supported"
Returns true if and only value-constraints are supported.
- Api

NODE_TYPE_MANAGEMENT_UPDATE_IN_USE_SUPPORTED
= "node.type.management.update.in.use.supported"
Indicates that you can change node definitions that are in-use by existing nodes
Note: JCR 2.0 had a typo with both the constant name and the value (suported instead of supported). PHPCR implementations talking with legacy backends should not break on this issue.
- Api

QUERY_LANGUAGES
= "query.languages"
Returns an array holding the constants representing the supported query languages, or a zero-length if query is not supported.
- Api

QUERY_STORED_QUERIES_SUPPORTED
= "query.stored.queries.supported"
Returns true if and only if stored queries are supported.
- Api

QUERY_FULL_TEXT_SEARCH_SUPPORTED
= "query.full.text.search.supported"
Returns true if and only if full-text search is supported.
- Api

QUERY_JOINS
= "query.joins"
Returns one of the following RepositoryInterface constants indicating the level of support for joins in queries:
- QUERY_JOINS_NONE - Joins are not supported. Queries are limited to a single selector.
- QUERY_JOINS_INNER - Inner joins are supported.
- QUERY_JOINS_INNER_OUTER - Inner and outer joins are supported.
- Api

QUERY_JOINS_NONE
= "query.joins.none"
Indicates that joins are not supported. Queries are limited to a single selector.
- Api

QUERY_JOINS_INNER
= "query.joins.inner"
Indicates that inner joins are supported.
- Api
Methods


getDescriptor(string $key) : mixed
Get the value(s) for this key.
If this is documented as a boolean property, this method returns a boolean, otherwise a string.
Name | Type | Description |
---|---|---|
$key | string | a descriptor key. |
Type | Description |
---|---|
mixed | a descriptor value in string or boolean form or an array of strings or booleans for multivalue descriptors |
- Api


getDescriptorKeys() : array
Returns a string array holding all descriptor keys available for this implementation.
Both, the standard descriptors defined by the string constants in this interface and any implementation-specific descriptors. Used in conjunction with getDescriptor($key) to query information about this repository implementation.
Type | Description |
---|---|
array | a string array holding all descriptor keys |
- Api


isStandardDescriptor(string $key) : boolean
Determines if the given identifier is a standard descriptor.
Returns true if $key is a standard descriptor defined by the string constants in this interface and false if it is either a valid implementation-specific key or not a valid key.
Name | Type | Description |
---|---|---|
$key | string | a descriptor key. |
Type | Description |
---|---|
boolean | whether $key is a standard descriptor. |
- Api


login(\PHPCR\CredentialsInterface $credentials = null, string $workspaceName = null) : \PHPCR\SessionInterface
Authenticates the user using the supplied credentials.
If workspaceName is recognized as the name of an existing workspace in the repository and authorization to access that workspace is granted, then a new Session object is returned. The format of the string workspaceName depends upon the implementation. If credentials is null, it is assumed that authentication is handled by a mechanism external to the repository itself and that the repository implementation exists within a context (for example, an application server) that allows it to handle authorization of the request for access to the specified workspace.
If workspaceName is null, a default workspace is automatically selected by the repository implementation. This may, for example, be the "home workspace" of the user whose credentials were passed, though this is entirely up to the configuration and implementation of the repository. Alternatively, it may be a "null workspace" that serves only to provide the method WorkspaceInterface::getAccessibleWorkspaceNames(), allowing the client to select from among available "real" workspaces.
Note: The Java API defines this method with multiple differing signatures.
Name | Type | Description |
---|---|---|
$credentials | \PHPCR\CredentialsInterface | The credentials of the user |
$workspaceName | string | the name of a workspace |
Type | Description |
---|---|
\PHPCR\SessionInterface | a valid session for the user to access the repository |
Exception | Description |
---|---|
\PHPCR\LoginException | if authentication or authorization (for the specified workspace) fails |
\PHPCR\NoSuchWorkspaceException | if the specified workspaceName is not recognized |
\PHPCR\RepositoryException | if another error occurs |
- Api