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

Zend Loader Laravel Package

zendframework/zend-loader

Autoloading and class loading utilities for Zend Framework applications. Provides standard and optimized autoloaders (including PSR-0/PSR-4 style support), plugin class loading, and tools to resolve and map class names to files for legacy or modular codebases.

View on GitHub
Deep Wiki
Context7

Getting Started

This package provides PSR-0 and class-map based autoloading utilities for legacy Zend Framework (ZF1/ZF2) code. Since it's archived (last release: 2019-09-04) and superseded by laminas/laminas-loader and modern PSR-4/PSR-12 standards, its primary use today is maintaining very old Laravel applications that originated from ZF1/ZF2 migrations. To get started:

  • Check if your project uses Zend_Loader or Zend\Loader classes (e.g., in vendor/zendframework/zend-loader/).
  • In config/app.php, look for legacy classmap or files includes referencing Zend_Loader::loadClass().
  • First use case: manually loading a ZF1-style class with Zend_Loader::loadClass('My_Class_Name') where PSR-4 autoloading doesn’t apply.

⚠️ Do not use in new Laravel apps. Prefer Illuminate\Support\Composer or Composer’s native PSR-4 autoloading.

Implementation Patterns

  • Backwards-compatible class loading: Wrap ZF1-style component initialization in a service provider:
    use Zend\Loader\StandardAutoloader;
    use Laravel\SerializableClosure\SerializableClosure;
    
    // In AppServiceProvider::boot()
    $loader = new StandardAutoloader([
        StandardAutoloader::LOAD_NS => ['LegacyApp' => base_path('app/Legacy')],
    ]);
    $loader->register();
    
  • Classmap for static legacy code: Use Zend\Loader\ClassMapAutoloader during bootstrap (e.g., in bootstrap/app.php):
    $autoloader = new ClassMapAutoloader([
        base_path('app/legacy_classes_map.php'),
    ]);
    $autoloader->register();
    
  • Migrating to PSR-4: As an intermediate step, generate a classmap for legacy classes with composer dump-autoload --classmap-authoritative, then gradually migrate to PSR-4 in composer.json.

Gotchas and Tips

  • Laravel 5.8+ compatibility: The zendframework/zend-loader package relies on deprecated spl_autoload_register() behavior; it may conflict with Laravel’s Composer-managed autoloader. Always run composer dump-autoload after modifications.
  • Case sensitivity: Unix servers are case-sensitive; ZF1-style class names often use inconsistent casing (My_Class vs MyClass). Ensure filenames match class names exactly.
  • Dependency on ZF1/ZF2 namespaces: Many legacy Zend classes rely on deprecated Zend_ prefix naming. Prefer moving these to app/Legacy with PSR-4 and deprecating Zend_Loader entirely.
  • No updates = security risk: This package is unmaintained. Audit its usage aggressively—every dependency on it is a technical debt marker.
  • Extension point: If you must extend it, override Zend\Loader\StandardAutoloader::autoload() in a custom wrapper to log missing classes and ease migration:
    class MigrationAutoloader extends StandardAutoloader
    {
        public function autoload($class)
        {
            if ($class === 'Legacy\UnusedComponent') {
                logger()->warning('Legacy component accessed: ' . $class);
            }
            return parent::autoload($class);
        }
    }
    
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.
davejamesmiller/laravel-breadcrumbs
artisanry/parsedown
christhompsontldr/phpsdk
enqueue/dsn
bunny/bunny
enqueue/test
enqueue/null
enqueue/amqp-tools
milesj/emojibase
bower-asset/punycode
bower-asset/inputmask
bower-asset/jquery
bower-asset/yii2-pjax
laravel/nova
spatie/laravel-mailcoach
spatie/laravel-superseeder
laravel/liferaft
nst/json-test-suite
danielmiessler/sec-lists
jackalope/jackalope-transport