Download the PHP package 81square/tiesa-ldap without Composer

On this page you can find all versions of the php package 81square/tiesa-ldap. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package tiesa-ldap

TIESA Ldap Component Fork

This is a fork of the original tiesa/ldap package. Credits to the original author Cyril Cottet for creating this great package!

This fork fixes some minor issues and adds LDAP paged result support. Please note that because of the paging support this package requires a higher PHP version (>= 5.4.22) than the original package. This package uses the same namespace as the original package and can be used as an easy replacement of the original package.

Install

Installing the component in your project is as simple as installing Composer if not already done so yet.

Then, under your project root folder, create a new file called composer.json and paste the following into it:

{
    "require": {
        "81square/tiesa-ldap": "dev-master"
    }
}

To select the component names & versions, you shall refer to information found at Packagist

Then you are ready to download all the vendor libraries and generate the autoloading configuration file:

$ php composer.phar install

From there, loading Ldap component classes as well as any other package supported in your composer.json configuration is as easy as adding the following code at the top of your script:

require_once '/path/to/project/vendor/autoload.php';

Usage

Connecting & Binding

A typical sequence for connecting to a LDAP involves not only establishing the connection to the server but also binding a user. This is done as follows:

<?php

use Toyota\Component\Ldap\Core\Manager;
use Toyota\Component\Ldap\Platform\Native\Driver;

$params = array(
    'hostname'      => 'ldap.example.com',
    'base_dn'       => 'dc=example,dc=com'
);
$manager = new Manager($params, new Driver());

$manager->connect();

// Anonymous binding
$manager->bind();

// Ready for searching & persisting information

Most of the times, you will have to use a privileged user to bind to the LDAP in order to perform persistence operations:

$manager->bind('cn=user,dc=example,dc=com', 'myTopSecretPassword');

If you are connecting to an Active Directory domain, you can also bind like this:

$manager->bind('[email protected]', 'myTopSecretPassword');

Connection Parameters

We have seen a minimal set of parameters in the connection & binding introduction. However, there are lots of configuration possibilities available:

Error Handling

All Ldap error codes and messages which are usually quite inconvenient to track (and are easily forgotten about) are handled with convenient exceptions for all LDAP operations.

NOTE: Just like the php ldap_connect function, the Manager's connect method will not actually connect. The actual connection is made during bind(). If your DC is unreachable or you provided the wrong connection configuration, you will get an exception on bind() and not on connect().

Hence, for instance, you can write the following:

<?php
// ... namespace imports and $params configuration
$manager = new Manager($params, new Driver());

try {
    $manager->connect();
} catch (ConnectionException $e) {
    // Do something about it
}

try {
    $manager->bind();
} catch (BindingException $e) {
    // Do something about it
}

// ...

All exceptions available are found in Toyota\Component\Ldap\Exception namespace

Search the LDAP

The most basic search as well as the most complex ones are all handled through a unique API. This is the end of the ldap_read or ldap_list or ldap_search dilemma:

<?php
// ... $manager connection & binding

// Whether to search through all subtree depth (Default = true)
$inDepth = true;

// Search
$results = $manager->search('ou=comp,dc=example,dc=com', '(objectclass=*)', $inDepth);

// A search result instance is retrieved which provides iteration capability for a convenient use
foreach ($results as $node) {
    echo $node->getDn();
    foreach ($node->getAttributes() as $attribute) {
        echo sprintf('%s => %s', $attribute->getName(), implode(',', $attribute->getValues()));
    }
}

Also for more convenience, the component offers a direct method to retrieve one node when you know its distinguished name:

<?php
$node = $manager->getNode('cn=my,ou=node,dc=example,dc=com');

Persist information to the LDAP

Forget about all the ldap_mod_add, ldap_mod_del, ldap_mod_replace, ldap_add and ldap_delete. The only things you'll need to remember about now are save() and delete(). The component will track all changes you make on a LDAP entry and will automagically issue the right function calls for just performing those changes in your directory:

<?php

$node = $manager->getNode('cn=node,ou=to,ou=update,dc=example,dc=com');
$node->get('username')->set('test_user');
$node->get('objectClass')->add('inetOrgPerson');
$node->get('sn')->set('Doe');
$node->removeAttribute('whatever');

$manager->save($node);

// Update done

$node = new Node()
$node->setDn('ou=create',dc=example,dc=com');
$node->get('objectClass', true)->add(array('top', 'organizationalUnit'));
// The true param creates the attribute on the fly
$node->get('ou', true)->set('create');

$manager->save($node);

// New Ldap entry saved

$manager->delete($node);

// Now it's gone

Resources

To run the test suite, clone the project in your working environment from github Package your own version of autoload.php and phpunit.xml starting from the distributed versions You are ready to go:

$ php composer.phar install --dev
$ vendor/bin/phpunit

About

Requirements

License

TIESA Ldap Component is licensed under the MIT License - see the LICENSE file for details


All versions of tiesa-ldap with dependencies

PHP Build Version
Package Version
Requires php Version >=5.4.22
ext-ldap Version *
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package 81square/tiesa-ldap contains the following files

Loading the files please wait ....