jamesmills / eloquent-uuid

A Laravel Eloquent Model trait for adding and using a uuid with models
139 stars 14 forks source link

Remove Laravel requirement to enable Lumen #13

Closed wedi closed 4 years ago

wedi commented 4 years ago

Hi, I'd like to suggest to remove the explicit requirement of Laravel as this breaks the usage of this package in Lumen, i.e. the requirement causes composer to remove Lumen packages and install Laravel instead. Thanks!

jamesmills commented 4 years ago

Hi, interesting. I hadn't thought about Lumen support before.

I guess the package can work in both Lumen and Laravel. Does Lumen use the Illuminate stuff like Illuminate\Database\Eloquent\Builder? Maybe I can change the requirement to something to do with Eloquent which is required by the package and is in Laravel and Lumen.

wedi commented 4 years ago

Yes, Lumen uses the Illuminate packages but when I add this package they get removed in favour of laravel.

$ composer require jamesmills/eloquent-uuid
Using version ^1.3 for jamesmills/eloquent-uuid
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 10 installs, 1 update, 23 removals
  - Removing illuminate/auth (v6.5.2)
  - Removing illuminate/broadcasting (v6.5.2)
  - Removing illuminate/bus (v6.5.2)
  - Removing illuminate/cache (v6.5.2)
  - Removing illuminate/config (v6.5.2)
  - Removing illuminate/container (v6.5.2)
  - Removing illuminate/contracts (v6.5.2)
  - Removing illuminate/database (v6.5.2)
  - Removing illuminate/encryption (v6.5.2)
  - Removing illuminate/events (v6.5.2)
  - Removing illuminate/filesystem (v6.5.2)
  - Removing illuminate/hashing (v6.5.2)
  - Removing illuminate/http (v6.5.2)
  - Removing illuminate/pagination (v6.5.2)
  - Removing illuminate/pipeline (v6.5.2)
  - Removing illuminate/queue (v6.5.2)
  - Removing illuminate/support (v6.5.2)
  - Removing illuminate/translation (v6.5.2)
  - Removing illuminate/validation (v6.5.2)
  - Removing illuminate/view (v6.5.2)
  - Removing illuminate/log (v6.5.2)
  - Removing illuminate/session (v6.5.2)
  - Removing illuminate/console (v6.5.2)
  - Installing paragonie/random_compat (v9.99.99): Downloading (100%)
  - Installing ramsey/uuid (3.8.0): Downloading (100%)
  - Installing symfony/css-selector (v5.0.0): Downloading (100%)
  - Installing tijsverkoyen/css-to-inline-styles (2.2.2): Downloading (100%)
  - Installing symfony/routing (v4.4.0): Downloading (100%)
  - Installing symfony/polyfill-iconv (v1.12.0): Downloading (100%)
  - Installing swiftmailer/swiftmailer (v6.2.3): Downloading (100%)
  - Installing league/flysystem (1.0.57): Downloading (100%)
  - Installing erusev/parsedown (1.7.3): Downloading (100%)
  - Updating laravel/framework (v6.5.2 => v6.5.2): Downloading (100%)
  - Installing jamesmills/eloquent-uuid (1.3.0): Downloading (100%)
paragonie/random_compat suggests installing ext-libsodium (Provides a modern crypto API that can be used to generate random bytes.)
ramsey/uuid suggests installing ircmaxell/random-lib (Provides RandomLib for use with the RandomLibAdapter)
ramsey/uuid suggests installing ext-libsodium (Provides the PECL libsodium extension for use with the SodiumRandomGenerator)
ramsey/uuid suggests installing ext-uuid (Provides the PECL UUID extension for use with the PeclUuidTimeGenerator and PeclUuidRandomGenerator)
ramsey/uuid suggests installing moontoast/math (Provides support for converting UUID to 128-bit integer (in string form).)
ramsey/uuid suggests installing ramsey/uuid-doctrine (Allows the use of Ramsey\Uuid\Uuid as Doctrine field type.)
ramsey/uuid suggests installing ramsey/uuid-console (A console application for generating UUIDs with ramsey/uuid)
symfony/routing suggests installing symfony/config (For using the all-in-one router or any loader)
symfony/routing suggests installing symfony/expression-language (For using expression matching)
swiftmailer/swiftmailer suggests installing ext-intl (Needed to support internationalized email addresses)
swiftmailer/swiftmailer suggests installing true/punycode (Needed to support internationalized email addresses, if ext-intl is not installed)
league/flysystem suggests installing league/flysystem-eventable-filesystem (Allows you to use EventableFilesystem)
league/flysystem suggests installing league/flysystem-rackspace (Allows you to use Rackspace Cloud Files)
league/flysystem suggests installing league/flysystem-azure (Allows you to use Windows Azure Blob storage)
league/flysystem suggests installing league/flysystem-webdav (Allows you to use WebDAV storage)
league/flysystem suggests installing league/flysystem-aws-s3-v2 (Allows you to use S3 storage with AWS SDK v2)
league/flysystem suggests installing league/flysystem-aws-s3-v3 (Allows you to use S3 storage with AWS SDK v3)
league/flysystem suggests installing spatie/flysystem-dropbox (Allows you to use Dropbox storage)
league/flysystem suggests installing srmklive/flysystem-dropbox-v2 (Allows you to use Dropbox storage for PHP 5 applications)
league/flysystem suggests installing league/flysystem-cached-adapter (Flysystem adapter decorator for metadata caching)
league/flysystem suggests installing league/flysystem-sftp (Allows you to use SFTP server storage via phpseclib)
league/flysystem suggests installing league/flysystem-ziparchive (Allows you to use ZipArchive adapter)
Writing lock file
Generating optimized autoload files
judgej commented 4 years ago

The dependency should be illuminate/support rather than laravel/framework.

Lumen pulls illuminate/support directly into the vendor directory. laravel/framework has illuminate/support embedded into the framework and aliases it, I'm guessing to speed up installation.

chris-doehring commented 4 years ago

Hi there,

thanks for the change in order to support Lumen! When are we going to see a release with that change? I would rather not use your package with a dev-master version.

jamesmills commented 4 years ago

Hi!

So you are telling me that I merged the fix into master but didn't tag it?

chris-doehring commented 4 years ago

It looks like it :) I was quite confused that my Lumen composer config tried to pull Laravel, even though your composer.json tells a different story, but then I realized you created no tag yet and I was looking at your master branch. So yes, a new version would be highly appreciated!

jamesmills commented 4 years ago

For your information, I recently found (thanks to https://treeware.earth) this package by @michaeldyrynda which you might like to also look at.

https://github.com/michaeldyrynda/laravel-model-uuid

jamesmills commented 4 years ago

Tagged 1.4.0

chris-doehring commented 4 years ago

That looks very nice, indeed. I will give it a try. Thanks for the hint! EDIT: And thanks for the release :)