tourze / stock-manage-bundle
专注于库存数量管理(Stock Management)
Installs: 341
Dependents: 3
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
Type:symfony-bundle
pkg:composer/tourze/stock-manage-bundle
Requires
- doctrine/collections: ^2.3
- doctrine/dbal: ^4.0
- doctrine/doctrine-bundle: ^2.13
- doctrine/orm: ^3.0
- easycorp/easyadmin-bundle: ^4
- knplabs/knp-menu: ^3.7
- monolog/monolog: ^3.1
- psr/log: ^3|^2|^1
- symfony/config: ^7.3
- symfony/console: ^7.3
- symfony/dependency-injection: ^7.3
- symfony/doctrine-bridge: ^7.3
- symfony/event-dispatcher: ^7.3
- symfony/event-dispatcher-contracts: ^3
- symfony/framework-bundle: ^7.3
- symfony/http-foundation: ^7.3
- symfony/http-kernel: ^7.3
- symfony/property-access: ^7.3
- symfony/routing: ^7.3
- symfony/security-core: ^7.3
- symfony/service-contracts: ^3.6
- symfony/validator: ^7.3
- symfony/yaml: ^7.3
- tourze/bundle-dependency: 1.*
- tourze/doctrine-indexed-bundle: 1.0.*
- tourze/doctrine-timestamp-bundle: 1.1.*
- tourze/doctrine-user-bundle: 1.0.*
- tourze/easy-admin-enum-field-bundle: 1.0.*
- tourze/easy-admin-extra-bundle: 1.0.*
- tourze/easy-admin-menu-bundle: 1.0.*
- tourze/enum-extra: 1.0.*
- tourze/json-rpc-core: 1.0.*
- tourze/product-core-bundle: 1.0.*
- tourze/product-service-contracts: 1.0.*
- tourze/symfony-dependency-service-loader: 1.0.*
Requires (Dev)
- doctrine/doctrine-fixtures-bundle: ^4.0
- doctrine/persistence: ^4.1
- phpstan/phpstan: ^2.1
- phpunit/phpunit: ^11.5
- tourze/phpunit-base: 1.*
- tourze/phpunit-doctrine-entity: 1.*
- tourze/phpunit-enum: 1.*
- tourze/phpunit-symfony-kernel-test: 1.0.*
- tourze/phpunit-symfony-unit-test: 1.*
- tourze/phpunit-symfony-web-test: 1.*
README
tourze/stock-manage-bundle 只保留“核心库存 + 聚合入口”:
- 核心库存:批次、库存日志、虚拟库存、分配策略、基础查询
- 聚合入口:检测到对应模块已安装时自动启用各
stock-*扩展 Bundle(可插拔)
核心内容
- 核心实体:
Tourze\StockManageBundle\Entity\StockBatch/StockLog/VirtualStock - 核心服务:
Tourze\StockManageBundle\Service\StockServiceInterface、BatchQueryServiceInterface - 分配策略:FIFO/LIFO/FEFO(见
Tourze\StockManageBundle\Service\AllocationStrategy\*)
扩展模块(按需安装)
- 入库:
tourze/stock-inbound-bundle - 出库:
tourze/stock-outbound-bundle - 预占:
tourze/stock-reservation-bundle - 调拨:
tourze/stock-transfer-bundle - 组合商品库存(
BundleItem/BundleStock):tourze/stock-bundle-bundle - 库存调整:
tourze/stock-adjustment-bundle - 库存锁定:
tourze/stock-lock-bundle - 预警:
tourze/stock-alert-bundle - 快照:
tourze/stock-snapshot-bundle - 成本:
tourze/stock-cost-bundle
安装
composer require tourze/stock-manage-bundle
在 config/bundles.php 中注册:
return [ // ... Tourze\StockManageBundle\StockManageBundle::class => ['all' => true], ];
如果项目启用了 tourze/bundle-dependency,在安装上述扩展 Bundle 后会被自动启用(见 Tourze\StockManageBundle\StockManageBundle::getBundleDependencies())。
使用建议
- 业务侧优先注入接口:
InboundServiceInterface/OutboundServiceInterface/ReservationServiceInterface - 实现与服务别名由各自扩展 Bundle 提供;未安装模块时不要注入对应接口
快速开始(核心库存)
use Tourze\ProductServiceContracts\SKU; use Tourze\StockManageBundle\Service\StockServiceInterface; $stockService = $container->get(StockServiceInterface::class); $sku = new SKU('PROD001'); $batch = $stockService->createBatch([ 'sku' => $sku, 'batch_no' => 'BATCH20240101001', 'quantity' => 100, ]);