beyondcode / herd-community

91 stars 1 forks source link

[Feature Request]: More extensions #16

Closed nam-co closed 1 year ago

nam-co commented 1 year ago

Feature Description

Instead of opening an issue for each extension we wish, easier like this

Is this feature valuable for other users as well and why?

Please don't put issues or duplicates (asking for an extension that is already on the list) just thumbs up

nam-co commented 1 year ago

FFMPEG: Like imagick this compresses videos

nam-co commented 1 year ago

puppeteer: Useful for packages like browsershot (amazing package)

rafaelgrube commented 1 year ago

I often use the oci8 extension. It would be awesome if I can add other extensions.

pyrou commented 1 year ago

Would be definitely nice to let us pick which extension we would like to enable.

At least provide a per-php-version php.ini file, so advanced user can add their own extension=/absolute/path.so, because so far, since the php.ini file is shared across all version, no chance to add an extension that would work for multiple php version.

ryanmortier commented 1 year ago

sqlsrv pdo_sqlsrv

SQL Server is a database that has first-party support through Laravel.

renedekat commented 1 year ago

xdebug

A debugger is an essential tool during development.

grantholle commented 1 year ago

ldap

mpociot commented 1 year ago

Taken from #47 and #26

Right now, we'll just gather feedback for additional extensions and then see if/which ones we can bundle into Herd.

bradgenereux commented 1 year ago

Ghostscript: Imagick requires it for PDF operations.

eliurkis commented 1 year ago

sqlsrv pdo_sqlsrv

SQL Server is a database that has first-party support through Laravel.

🙏

ryanscherler commented 1 year ago

It seems that mbregex isn't explicitly compiled with the included mbstring extension and causing issues with running Craft CMS via Herd (had to revert back to Homebrew 😔). Anybody else experience the same issue?

The error I get when running any version of Herd PHP:

error \mb_regex_encoding('UTF-8')

// call to undefined function mb_regex_encoding()
mpociot commented 1 year ago

It seems that mbregex isn't explicitly compiled with the included mbstring extension and causing issues with running Craft CMS via Herd (had to revert back to Homebrew 😔). Anybody else experience the same issue?

The error I get when running any version of Herd PHP:


error \mb_regex_encoding('UTF-8')

// call to undefined function mb_regex_encoding()

Please make sure that you've updated the built in PHP version via the settings screen.

ryanscherler commented 1 year ago

Oh ok - has this extension been enabled and addresses this error?

Plytas commented 1 year ago

Taken from #47 and #26

  • GRPC
  • memcached

Right now, we'll just gather feedback for additional extensions and then see if/which ones we can bundle into Herd.

Protobuf too.

vincent-tarrit commented 1 year ago

Hello ! Thank you for the app ! It looks really nice ! I'm just waiting to download because I would need the extension

IMAP

To be sure to use in all my project 😃

Thank you and I hope it will be added Vincent

ewilan-riviere commented 1 year ago

I love Herd! 😄

What about pcov for tests coverage?

mpociot commented 1 year ago

@ewilan-riviere I'm currently working on compiling xDebug for all PHP versions so that we can ship it with Herd, which you can then use for test coverage 👍

alcaeus commented 1 year ago

@mpociot is there any progress on the MongoDB support? Anything we can help with in that regard?

pryley commented 1 year ago

@ewilan-riviere I'm currently working on compiling xDebug for all PHP versions so that we can ship it with Herd, which you can then use for test coverage 👍

pcov is almost 5 times faster than xdebug for PHPUnit code coverage.

The differences in performance of Xdebug and PCOV are not slight. Xdebug is first and foremost a debugging extension, and when you load it, you incur the overhead of a debugger even when it's disabled. PCOV is less than 1000 lines of code (not including CFG) and doesn't have anything like the overhead of a debugger.

BurakBoz commented 1 year ago

gd extension doesn't have avif support yet is this too hard build statically?

esseremmerik commented 1 year ago

We use php_xsl extension, would love to see this included

Plytas commented 1 year ago

I believe the best approach here would be to provide tooling to build our own binaries. A default binary with most popular extensions is always good, but people will constantly ask for more.

mpociot commented 1 year ago

@Plytas the main problem is that it's not as easy to compile extensions statically depending on the extension dependencies. Some might be super easy to add, while others are more complicated

Plytas commented 1 year ago

@mpociot would you mind sharing more in depth about what it takes to build a binary with required extensions? Maybe someone in the community will be interested in the challenge to solve this?

ianlandsman commented 1 year ago

A second vote for the IMAP extension if it's possible.

naingyy commented 1 year ago

Is there any workaround to enable the oci8 extension for now?

jacobshenning commented 1 year ago

@mpociot Have you looked into compiling openswoole at all? It would be awesome if that was a possibility.

ndberg commented 1 year ago

php-decimal

Correctly-rounded, arbitrary precision decimal floating-point arithmetic in PHP

https://php-decimal.io/#introduction https://github.com/php-decimal/ext-decimal

morrislaptop commented 1 year ago

'swoole'

Swoole provides concurrency for PHP with Laravel Octane.

From #97

jacobshenning commented 1 year ago

Have any decisions been made to not implement an extension? If so, is there a way I can see the won't implement list?

vikas5914 commented 1 year ago

@pryley You can download the Pre-complied extension from here: https://packages.macports.org/php82-pcov/

@morrislaptop Swoole: https://packages.macports.org/php82-swoole/

stojankukrika commented 1 year ago

Mongo db will be nice to have as well.

vikas5914 commented 1 year ago

@stojankukrika You can download from here: https://packages.macports.org/php82-mongodb/

chrisbaswell commented 1 year ago

Snowflake PDO - https://github.com/snowflakedb/pdo_snowflake

StefanNeuser commented 1 year ago

mcrypt for php 7.4 to support Laravel 4.2 :-)

iambateman commented 1 year ago

gettext.

I think switching to herd made something like __('Translatable') break, and as far as I can tell, there's no way to enable it within Herd.

nam-co commented 1 year ago

I haven't found any issues with json translations on any project, maybe is something else

thijsdewitt commented 1 year ago

ext-xsl Would be nice for us Magento developers

milhouse1337 commented 1 year ago

I've compiled a list of extensions that were included in the brew build but are absent in this one. Here's the breakdown, along with my reasoning for their potential inclusion:

In summary, I believe we should at least include gettext, ldap, odbc, pdo_dblib, pdo_odbc, pspell, random and xsl, given that there aren't alternative installation methods for them via PECL.

EDIT: Missed a few modules, sorry. If you guys want to list the available modules in your build there is this handy command: php -m 😅

pyrou commented 1 year ago

Pecl still requires to enable (manually or not) extension in php.ini and problem is: the php.ini file is shared across all php versions in herd.

jason-beach commented 1 year ago

@pyrou ,

With Herd's latest build, there are now php.ini files for each version of PHP. So you can add extensions per version of PHP.

martinemmert commented 1 year ago

Can we pay or support you otherwise to include the proposal of @milhouse1337 ?

I am currently stuck building an MVP and need XSL badly. Tinker around and lose more time with phpize is something I want to avoid.

You did an awesome job and provided us Herd for free. Saving me a ton of time is worth my money 👍

edit:

@vikas5914 pointed me in the right direction a few comments further below

pryley commented 1 year ago

@martinemmert Why not just use Laravel Valet?

martinemmert commented 1 year ago

@pryley never used it before and Herd was as easy as it can get setting up a php environment.

It just works and I don't have to care about it that much.

Nevertheless, I'll take a look at Valet.

Thanks

hans0801 commented 1 year ago

@pyrou ,

With Herd's latest build, there are now php.ini files for each version of PHP. So you can add extensions per version of PHP.

Hi @jason-beach , Thanks fo the information. So the new released version had every ini file right? Actually i need ldap extension on this herd, could you help me for add those extension when i will use herd? Thanks

vikas5914 commented 1 year ago

@martinemmert : Go to this link: https://packages.macports.org/php82-xsl/ (you can php version) and download the version you want (arm64 for M1 mac), and it will give the .so file that you can directly put in herd directory and change the php.ini file.

esseremmerik commented 1 year ago

The solution by @vikas5914 is perfect! Don't forget to open the extension file in the finder with a random application and allow the downloaded file from the internet (unknown supplier), otherwise PHP is not able to load the extension (if you have enabled strict file restrictions in OSX)

baskinvolkan commented 1 year ago

sqlsrv

SQL Server is a database that has first-party support through Laravel.

🙏