phpcr/src/PHPCR/RepositoryInterface.php
This file is part of the PHPCR API and was originally ported from the Java
JCR API to PHP by Karsten Dambekalns for the FLOW3 project.
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.
- License
- Apache Software License 2.0
- Link
- http://phpcr.github.com/
\PHPCR\RepositoryInterface
Package: DefaultThe entry point into the content repository.
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"
The descriptor key for the version of the specification this repository
implements.
For JCR 2.0 the value of this descriptor is the string "2.0".
- Api
-


SPEC_NAME_DESC
= "jcr.specification.name"
The descriptor key for the name of the specification this repository
implements.
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 key for the name of the repository vendor.
The descriptor returned for this key is a String.
- Api
-


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


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


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


WRITE_SUPPORTED
= "write.supported"
Key to a boolean descriptor.
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"
Key to a String descriptor.
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"
One of four possible values for the descriptor IDENTIFIER_STABILITY.
Indicates that identifiers may change between method calls.
- Api
-


IDENTIFIER_STABILITY_SAVE_DURATION
= "identifier.stability.save.duration"
One of four possible values for the descriptor IDENTIFIER_STABILITY.
Indicates that identifiers are guaranteed stable within a single
save/refresh cycle.
- Api
-


IDENTIFIER_STABILITY_SESSION_DURATION
= "identifier.stability.session.duration"
One of four possible values for the descriptor IDENTIFIER_STABILITY.
Indicates that identifiers are guaranteed stable within a single
session.
- Api
-


IDENTIFIER_STABILITY_INDEFINITE_DURATION
= "identifier.stability.indefinite.duration"
One of four possible values for the descriptor IDENTIFIER_STABILITY.
Indicates that identifiers are guaranteed to be stable forever.
- Api
-


OPTION_XML_EXPORT_SUPPORTED
= "option.xml.export.supported"
Key to a boolean descriptor.
Returns true if and only if XML export is
supported.
- Api
-


OPTION_XML_IMPORT_SUPPORTED
= "option.xml.import.supported"
Key to a boolean descriptor.
Returns true if and only if XML import is
supported.
- Api
-


OPTION_UNFILED_CONTENT_SUPPORTED
= "option.unfiled.content.supported"
Key to a boolean descriptor.
Returns true if and only if unfiled content
is supported.
- Api
-


OPTION_VERSIONING_SUPPORTED
= "option.versioning.supported"
Key to a boolean descriptor.
Returns true if and only if full versioning
is supported.
- Api
-


OPTION_SIMPLE_VERSIONING_SUPPORTED
= "option.simple.versioning.supported"
Key to a boolean descriptor.
Returns true if and only if simple
versioning is supported.
- Api
-


OPTION_ACTIVITIES_SUPPORTED
= "option.activities.supported"
Key to a boolean descriptor.
Returns true if and only if activities are
supported.
- Api
-


OPTION_BASELINES_SUPPORTED
= "option.baselines.supported"
Key to a boolean descriptor.
Returns true if and only if configurations
and baselines are supported.
- Api
-


OPTION_ACCESS_CONTROL_SUPPORTED
= "option.access.control.supported"
Key to a boolean descriptor.
Returns true if and only if access control
is supported.
- Api
-


OPTION_LOCKING_SUPPORTED
= "option.locking.supported"
Key to a boolean descriptor.
Returns true if and only if locking is
supported.
- Api
-


OPTION_OBSERVATION_SUPPORTED
= "option.observation.supported"
Key to a boolean descriptor.
Returns true if and only if asynchronous
observation is supported.
- Api
-


OPTION_JOURNALED_OBSERVATION_SUPPORTED
= "option.journaled.observation.supported"
Key to a boolean descriptor.
Returns true if and only if journaled
observation is supported.
- Api
-


OPTION_RETENTION_SUPPORTED
= "option.retention.supported"
Key to a boolean descriptor.
Returns true if and only if retention and
hold are supported.
- Api
-


OPTION_LIFECYCLE_SUPPORTED
= "option.lifecycle.supported"
Key to a boolean descriptor.
Returns true if and only if lifecycles are
supported.
- Api
-


OPTION_TRANSACTIONS_SUPPORTED
= "option.transactions.supported"
Key to a boolean descriptor.
Returns true if and only if transactions
are supported.
- Api
-


OPTION_WORKSPACE_MANAGEMENT_SUPPORTED
= "option.workspace.management.supported"
Key to a boolean descriptor.
Returns true if and only if workspace
management is supported.
- Api
-


OPTION_UPDATE_PRIMARY_NODETYPE_SUPPORTED
= "option.update.primary.nodetype.supported"
Key to a boolean descriptor.
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"
Key to a boolean descriptor.
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"
Key to a boolean descriptor.
Returns true if and only if the creation of
shareable nodes is supported.
- Api
-


OPTION_NODE_TYPE_MANAGEMENT_SUPPORTED
= "option.node.type.management.supported"
Key to a boolean descriptor.
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"
Key to a boolean descriptor.
Returns true if and only if node and
property with same name is supported.
- Api
-


NODE_TYPE_MANAGEMENT_INHERITANCE
= "node.type.management.inheritance"
Key to string descriptor.
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"
One of three possible values for the descriptor
NODE_TYPE_MANAGEMENT_INHERITANCE.
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"
One of three possible values for the descriptor
NODE_TYPE_MANAGEMENT_INHERITANCE.
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"
One of three possible values for the descriptor
NODE_TYPE_MANAGEMENT_INHERITANCE.
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"
Key to a boolean descriptor.
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"
Key to a boolean descriptor.
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"
Key to a boolean descriptor.
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"
Key to a boolean descriptor.
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"
Key to a boolean descriptor.
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"
Key to a boolean descriptor.
Returns true if and only if same-name
sibling child nodes are supported.
- Api
-


NODE_TYPE_MANAGEMENT_PROPERTY_TYPES
= "node.type.management.property.types"
Key to an integer[] descriptor.
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"
Key to a boolean descriptor.
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"
Key to a boolean descriptor.
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"
Key to a boolean descriptor.
Returns true if and only value-constraints
are supported.
- Api
-


NODE_TYPE_MANAGEMENT_UPDATE_IN_USE_SUPPORTED
= "node.type.management.update.in.use.supported"
Key to boolean descriptor.
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"
Key to a string[] descriptor.
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"
Key to a boolean descriptor.
Returns true if and only if stored queries
are supported.
- Api
-


QUERY_FULL_TEXT_SEARCH_SUPPORTED
= "query.full.text.search.supported"
Key to a boolean descriptor.
Returns true if and only if full-text
search is supported.
- Api
-


QUERY_JOINS
= "query.joins"
Key to String descriptor.
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"
One of three possible values for the descriptor QUERY_JOINS .
Indicates
that joins are not supported. Queries are limited to a single selector.
- Api
-


QUERY_JOINS_INNER
= "query.joins.inner"
One of three possible values for the descriptor QUERY_JOINS .
Indicates
that inner joins are supported.
- Api
-


QUERY_JOINS_INNER_OUTER
= "query.joins.inner.outer"
One of three possible values for the descriptor QUERY_JOINS .
Indicates
that inner and outer 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.
ParametersName | Type | Description |
---|
$key | string | a descriptor key. |
---|
ReturnsType | Description |
---|
mixed | a descriptor value in string or boolean form or an array
of strings or booleans for multivalue descriptors |
Details- 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.
ReturnsType | Description |
---|
array | a string array holding all descriptor keys |
Details- 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.
ParametersName | Type | Description |
---|
$key | string | a descriptor key. |
---|
ReturnsType | Description |
---|
boolean | whether $key is a standard descriptor. |
Details- 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.
ParametersReturnsThrowsDetails- Api
-