Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Ldap Laravel Package

symfony/ldap

Symfony LDAP Component: a PHP LDAP client built on top of the PHP ldap extension. Stable since Symfony 3.1 (earlier versions were internal and may break). Includes docs and contribution resources via the main Symfony repository.

View on GitHub
Deep Wiki
Context7

Provides a LDAP client for PHP on top of PHP's ldap extension

Frequently asked questions about Ldap
Can I use Symfony LDAP Component in Laravel for LDAP authentication instead of custom code?
Yes, the Symfony LDAP Component provides a clean API for binding, searching, and managing LDAP entries. You can replace Laravel’s default authentication logic by using `LdapClient::bind()` to validate credentials and sync user data with Eloquent models. It’s widely used in production for LDAP-backed auth systems.
What Laravel versions and PHP versions does Symfony LDAP support?
The component is stable with PHP 8.4+ (required for Laravel 10+) and Symfony 8.x. Earlier versions (Symfony 3.1+) may work but lack modern optimizations. Always check the [Symfony LDAP docs](https://symfony.com/doc/current/components/ldap) for version-specific notes.
How do I install Symfony LDAP in Laravel?
Run `composer require symfony/ldap` in your project. Ensure the PHP `ldap` extension is enabled (check with `php -m | grep ldap`). No additional Laravel-specific setup is needed beyond binding the `LdapClient` to your service container in `config/app.php`.
Does Symfony LDAP work with Active Directory (AD) or only OpenLDAP?
It works with both AD and OpenLDAP, but AD may require additional configuration like SASL/GSSAPI binding or custom schema handling. The component supports standard LDAP operations, but you may need to adjust filters or attribute mappings for AD-specific quirks like `memberOf` overlays.
How do I handle LDAP connection failures or timeouts in Laravel?
Configure timeouts and retries in the `LdapClient` constructor (e.g., `new LdapClient('ldap://server', ['timeout' => 5])`). For resilience, wrap LDAP calls in try-catch blocks and implement fallback logic (e.g., cache local user data or show a degraded UI). Laravel’s `retry()` helper can also be used for transient failures.
Can I sync LDAP users to Laravel’s database automatically?
Yes, use `LdapClient::search()` to query LDAP entries and map them to Eloquent models (e.g., `User`). Trigger syncs via Laravel events (e.g., `User::created`), observers, or scheduled jobs. For large directories, paginate results or use queue workers to avoid timeouts.
Is there a way to test LDAP interactions in Laravel’s CI/CD pipeline?
Set up a lightweight LDAP server in Docker (e.g., `osixia/openldap`) for testing. Use tools like `php-ldap-test` or mock the `LdapClient` in unit tests with Laravel’s `Mockery` or `PHPUnit`. Avoid hitting production LDAP in CI by using a test container or in-memory LDAP (e.g., `php-ldap` with a fake server).
What are the alternatives to Symfony LDAP for Laravel?
Alternatives include `spomky-labs/ldap` (Symfony-based but less maintained) or rolling your own with PHP’s native `ldap_*` functions. For Laravel-specific solutions, consider packages like `laravel-ldap` (community-driven) or `adldap2/adldap2-laravel` (AD-focused). Symfony LDAP is preferred for its stability and abstraction.
How do I map LDAP attributes (e.g., `givenName`, `mail`) to Laravel model fields?
Use the `Entry` class to access LDAP attributes and manually map them to Eloquent attributes. For example, `Entry::get('givenName')` can populate a `User` model’s `first_name` field. Create a helper method (e.g., `User::fromLdapEntry()`) to standardize the mapping across your app.
Will Symfony LDAP work with Laravel’s service container and dependency injection?
Absolutely. Bind the `LdapClient` as a singleton in `config/app.php` (e.g., `'ldap' => fn($app) => new LdapClient($app['config']['ldap'])`) and inject it into controllers/services using Laravel’s DI. This integrates seamlessly with Laravel’s ecosystem, including middleware and service providers.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
codraw/graphviz
nexmo/api-specification
capell-app/block-library
axium/identity
cetria/laravel-dummy-models
cetria/reflection-helper
agropredict/sso-auth-bundle
evolvestudio/spam-protection
datacore/hub-sdk
develia/commons
cuci/prototurk-sdk
cuci/prototurk-sdk-symfony
develia/geo-bundle
dreamzy/livewire-charts
touchestate-sdk/php-sdk
22h/doctrine-garbage-collection-bundle
agtp/agtp-php
agtp/mod-php
splash/sonata-admin
splash/metadata