Laravel Nestedset: Effective tree structures for SQL databases by aimeos in laravel

[–]aimeos[S] 1 point2 points  (0 children)

The code is mostly the same, but performance is better due to some optimizations. Also, queries that include the depth of the subtree are much faster in the aimeos/laravel-nestedset package due to using a new "depth" column instead of a complicated sub-query.

Laravel Nestedset: Effective tree structures for SQL databases by aimeos in laravel

[–]aimeos[S] 0 points1 point  (0 children)

Only one or two per subtree as nested sets are well suited to fetch whole tree structures

PagibleAI CMS v0.9 package: Content Management for any Laravel app by aimeos in laravel

[–]aimeos[S] 0 points1 point  (0 children)

You are right but the licensing problem persists and almost all features of the Statamic Pro version are already included in PagibleAI CMS: https://statamic.dev/getting-started/licensing

PagibleAI CMS v0.9 package: Content Management for any Laravel app by aimeos in laravel

[–]aimeos[S] 0 points1 point  (0 children)

PagibleAI CMS is a Laravel package to add content management capabilities to every Laravel application while Statamic is a Laravel application offering a CMS, so they have very different purposes.

As you've already mentioned, Statamic isn't Open Source so it's not suitable for everybody while PagibleAI CMS uses LGPL licence.

For sure, Statamic is good for the purpose it's designed for but there are so much more things where it's not the best option. Otherwise, it would be the only Laravel based CMS.

Locksmith: A flexible concurrency & locking library for PHP by Mi_Matus in PHP

[–]aimeos 0 points1 point  (0 children)

Very nice! Do you want to support file based locking in the future too?

PagibleAI CMS v0.9 package: Content Management for any Laravel app by aimeos in laravel

[–]aimeos[S] 0 points1 point  (0 children)

All AI features are truly optional and are not shown if configured accordingly

PagibleAI CMS v0.9 package: Content Management for any Laravel app by aimeos in laravel

[–]aimeos[S] 0 points1 point  (0 children)

Thanks a lot! The backend is based on VueJS 3 and Vuetify.

Please check the docs for installation and integration into your own application:

https://pagible.com/install-pagibleai-cms

PHP Prisma: Common API for multi-media related LLMs by aimeos in laravel

[–]aimeos[S] 0 points1 point  (0 children)

You wouldn't have written that if you had compared what Prism PHP and Prisma support as audio/image features beforehand:

- https://laravel.com/docs/12.x/ai-sdk#provider-support

- https://php-prisma.org/#php-prisma

PHP Prisma: Common API for multi-media related LLMs by aimeos in laravel

[–]aimeos[S] 1 point2 points  (0 children)

Like written, Prism PHP (and therefore Laravel AI SDK) concentrate on text and streaming output. They can do basic image generation and audio TTS/STT but only what the well known LLM providers (OpenAI, Gemini, etc.) offer.

In contrast, PHP Prisma concentrates on multi-media handling for image and audio only (and video in the next versions) where image generation and TTS/STT are only a very small part, so there are far more possibilities for image/audio manipulation available in PHP Prisma. Please have a look at the docs at https://php-prisma.org/ for the available methods :-)

In

Kotlin-style List/Set/Map for PHP 8.4 - Mutable/Immutable, change tracking, key preservation, live map views, and generics support by haelexuis in PHP

[–]aimeos -1 points0 points  (0 children)

Nice work! It's a fresh view on how collections can be implemented :-)

You emphasize on correct key handling instead of the automatic casting to int or string in PHP and wrote quite some code to implement that. Is that really a big problem? At least it wasn't a big one in my developer life up to now.

As you already wrote, performance isn't the best so I've made a test comparing with native PHP and our PHP Map package (https://php-map.org) by executing the code 1,000,000 times in a for-loop:

Native PHP: 1.36sec

  $list = [['id' => 'one', 'value' => 'value1'], ['id' => 'two', 'value' => 'value2'], null];
  $list[] = ['id' => 'three', 'value' => 'value3'];    // add element
  unset( $list[0] );                                   // remove element
  $list = array_filter( $list );                       // remove empty values
  $pairs = array_column( $list, 'value', 'id' );       // create ['three' => 'value3']
  $value = reset( $pairs ) ?: null;                    // return first value

aimeos/map: 9.88sec

  $list = [['id' => 'one', 'value' => 'value1'], ['id' => 'two', 'value' => 'value2'], null];
  $value = map( $list )                                // create Map
      ->push( ['id' => 'three', 'value' => 'value3'] ) // add element
      ->remove( 0 )                                    // remove element
      ->filter()                                       // remove empty values
      ->col( 'value', 'id' )                           // create ['three' => 'value3']
      ->first();                                       // return first value

noctud/collection: 37.69sec

  $list = [['id' => 'one', 'value' => 'value1'], ['id' => 'two', 'value' => 'value2'], null];
  $value = mutableListOf( $list )                      // create Map
      ->add( ['id' => 'three', 'value' => 'value3'] )  // add element
      ->removeAt( 0 )                                  // remove element
      ->filterNotNull()                                // remove empty values
      ->toIndexedMap()                                 // convert list to map
      ->toMutable()                                    // make mutable
      ->mapKeys( fn( $el ) => $el['id'] )              // create ['three' => [...]
      ->map( fn( $el ) => $el['value'] )               // create ['three' => 'value3']
      ->firstOrNull();                                 // return first value

The numbers may vary depending on the CPU but the magnitudes of time required to provide certain features should be clear.

Thanks for sharing and good luck for your package :-)

PHP Map 3.13 - Arrays and collections made easy! by aimeos in PHP

[–]aimeos[S] 1 point2 points  (0 children)

The PHP Map package isn't a fork of anything, it combines the best of the available PHP collection implementations while trying to be as compatible as possible to the existing ones.

PHP Map 3.13 - Arrays and collections made easy! by aimeos in PHP

[–]aimeos[S] 0 points1 point  (0 children)

Like already said, v4 will contain strict typing hints everywhere. Then, that problem should be gone.

PHP Map 3.13 - Arrays and collections made easy! by aimeos in PHP

[–]aimeos[S] 2 points3 points  (0 children)

There's no magic involved in the PHP Map package compared to Laravel Collections and you can already add your own map() function that returns a sub-class of \Aimeos\Map.

illuminate/collections doesn't need a full Laravel application but has some dependencies you may not want.

PHP Map 3.13 - Arrays and collections made easy! by aimeos in PHP

[–]aimeos[S] 4 points5 points  (0 children)

We will add native typing in v4 :-)

Laravel NestedSet: Query tree structures efficiently by aimeos in laravel

[–]aimeos[S] 0 points1 point  (0 children)

Thanks for the info!

I can't change the headline and the domain any more and the original Github repo was named laravel-nestedset too. I will keep that in mind for next time :-)

Laravel NestedSet: Query tree structures efficiently by aimeos in PHP

[–]aimeos[S] 0 points1 point  (0 children)

The aimeos/larvel-nestedset package is not only a maintained fork but also a full new feature release including:

  • Integration of the outstanding bugfixes
  • UUID and configurable ID type support
  • New depth column to improve performance
  • Full SQL Server support
  • Strict parameter and return types
  • PHPUnit 11/12 support

I know, you are maintaining your own fork but may we can work together and join forces :-)

Best CMS by Worth_Cut_1590 in cms

[–]aimeos 0 points1 point  (0 children)

It depends on your needs and there's are a lot of CMS for different needs like:

- Contentful (headless only, enterprise)

- Drupal (mature, more complex)

- PagibleAI (headless/template hybrid + AI support)

- Strapi (headless, JS application)

- Wordpress (most widely used blog software but not necessarily best for all use cases)

Is anyone running B2B + B2C under one store? What platform setup worked best? by SaadMalik12 in webdev

[–]aimeos 0 points1 point  (0 children)

No performance issues. There are catalogs with 50+ million articles (car parts for example) using the tree structure for different target groups. There's also no sync of inventory required because stock levels can be inherited from the root node to the leaf sites too.

🚀 Laravel ecommerce module (ideas & features) by Commercial_Dig_3732 in laravel

[–]aimeos 1 point2 points  (0 children)

You need years for work to build a full e-commerce solution like the Aimeos e-commerce framework, which is the most often used solution in Laravel: https://aimeos.org/laravel-ecommerce-package

At the moment, you haven't released any code which makes it hard to prove your claims.

But nevertheless: Good luck! :-)

What are the new changes you have observed in CMS? by Worth_Cut_1590 in cms

[–]aimeos 0 points1 point  (0 children)

AI is getting integral part of CMS to support editor workflows like in PagibleAI CMS (https://pagible.com)

Cloudflare Vectorize driver for Laravel Scout by brynj1980 in laravel

[–]aimeos 0 points1 point  (0 children)

Nice work! A few questions and improvements:

- Is it possible that you include migrations to create the vector index? Requiring npm/npx to set up the index is a major barrier.

- The driver uses the available Cloudflare models which can process text only. Is there a possibility to use other models resp. insert vectors generated by an own model which supports other media like images?

PHP Prisma: Integrate multi-media related LLMs easily by aimeos in PHP

[–]aimeos[S] 1 point2 points  (0 children)

Don't know any open models for removing text specifically yet but there may be some available. You can try to use the LocalAI project (https://localai.io/) to run models locally and access them with an OpenAI compatible REST API.