Weave 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

Mssql Bundle Legacy Laravel Package

mrmitch/mssql-bundle-legacy

Legacy MSSQL bundle for Laravel/PHP, providing SQL Server driver integration and configuration for older framework versions. Helps maintain legacy apps that still rely on Microsoft SQL Server connections.

View on GitHub
Deep Wiki
Context7

Getting Started

  1. Install the release: composer require vendor/package:^2.2.
  2. Because 2.2.0 only adds a Composer requirement for doctrine/common:*, verify what Composer actually resolved before writing code:
    composer show doctrine/common
    composer why doctrine/common
    
  3. Look first at the package's composer.json, service provider, and any published config. The release contains no new package API, so your entry point is unchanged from 2.1.x.
  4. First use case: use Doctrine\Common\Collections\ArrayCollection for typed, chainable collections in a Laravel action or service, or Doctrine\Common\Util\ClassUtils when normalizing proxy class names:
    use Doctrine\Common\Collections\ArrayCollection;
    
    $users = new ArrayCollection($request->user()->team->all());
    
    $admins = $users->filter(fn ($user) => $user->isAdmin());
    

Implementation Patterns

Treat 2.2.0 as a dependency-resolution release, not a feature release. The package's day-to-day API is unchanged; the practical difference is that doctrine/common is now guaranteed to be present after install.

Use Doctrine Common utilities alongside Laravel collections. ArrayCollection is useful when you need strict object typing and Doctrine's Criteria filtering, while still passing data through Laravel pipelines:

use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Criteria;

$collection = new ArrayCollection($orders);

$criteria = Criteria::create()
    ->where(Criteria::expr()->eq('status', 'paid'))
    ->orderBy(['createdAt' => 'DESC']);

$paid = $collection->matching($criteria);

Normalize proxy class names when logging or dispatching events. If your package integrates with Doctrine entities, ClassUtils::getClass() and ClassUtils::getRealClass() prevent proxy class names from leaking into logs, jobs, or API responses:

use Doctrine\Common\Util\ClassUtils;

$realClass = ClassUtils::getRealClass($entity::class);

Keep dependency injection explicit. Do not bind ArrayCollection in the container as a singleton; instantiate it per use case. If the package exposes Doctrine-aware services, resolve them through the package's published bindings rather than constructing them manually.

Workflow for upgrades:

composer update vendor/package --with-dependencies
php artisan vendor:publish --tag=package-config   # if the package provides config
php artisan config:clear
php artisan test

Gotchas and Tips

The wildcard constraint is the main risk. doctrine/common:* allows Composer to install any major version, including future majors that remove classes such as Doctrine\Common\Util\ClassUtils or deprecated inflector helpers. Pin the transitive dependency in your application's root composer.json:

"require": {
    "doctrine/common": "^3.4"
}

Then run:

composer update doctrine/common --with-dependencies
composer why-not doctrine/common 4.0

Watch for conflicts with Doctrine DBAL/ORM. If your app also uses doctrine/dbal or doctrine/orm, the wildcard can pull a doctrine/common version that conflicts with their constraints. Use composer update --dry-run before committing the lockfile.

No new extension points were added in 2.2.0. If you were already extending the package through its service provider bindings or config, nothing changes. The only new extension surface is whatever doctrine/common itself exposes; prefer doctrine/collections and doctrine/inflector directly when you only need those components, because doctrine/common is increasingly a metapackage.

Debugging dependency changes:

composer depends doctrine/common
composer show --tree doctrine/common
composer diagnose

Clear Laravel caches after upgrading. Package discovery and config caching can mask changed service-provider behavior:

php artisan package:discover
php artisan config:clear
php artisan cache:clear

Do not assume a code change. The 2.2.0 release note only documents require doctrine/common:*. If you see behavioral differences, inspect the diff in vendor/vendor/package and compare composer.lock; the change is almost certainly a version-resolution side effect rather than new package logic.

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.
robertmarney/lara-hierarchial-collections
simonschaufi/rule-doc-generator
emissaoja/emissaoja
blackbricksoftware/gravityforms-civicrm-form-processor
al-rahabi/fancy-crud
jinas/dhivatar-component
mltstephane/laravel-quality
bernskiold/laravel-talentlms
bernskioldmedia/laravel-form-architect
youbar/easy-crud
c-point-labs/laravel-hostyourai
dbravoan/dbcms-admin-theme-dbcms
dbravoan/dbcms-theme-db-cyber
dbravoan/dbcms-blocks-basic
dbravoan/dbcms-module-content-audit
dbravoan/dbcms-module-ai-assistant
paygate-to/paygate-php
padosoft/askmydocs-connector-base
defstudio/supercharged-carbon
bernskioldmedia/laravel-matomo