Fasáda je odporúčaná voľba, nie jediná cesta. Je to tenká vrstva nad RoundlyConsulting\TradingAnalytics\TradingAnalyticsManager, koreňom fasády a singletonom v kontajneri. Injektujte ho cez konštruktor a získate rovnaké API s explicitnou závislosťou a bez statických volaní:
use RoundlyConsulting\TradingAnalytics\TradingAnalyticsManager;
final class PerformanceReport
{
public function __construct(private TradingAnalyticsManager $analytics) {}
public function build(iterable $rows): array
{
return $this->analytics->for($rows)->scale(2)->calculate()->toArray();
}
}Trieda enginu
RoundlyConsulting\TradingAnalytics\Analytics funguje aj samostatne. Jej statické for() a make() prijímajú LazyCollection objektov Trade — riadky najprv premapujte cez Trade::collect():
use RoundlyConsulting\TradingAnalytics\Analytics;
use RoundlyConsulting\TradingAnalytics\DataTransferObjects\Trade;
// The engine itself — takes a LazyCollection of Trade objects
Analytics::for(Trade::collect($rows))->calculate();
Analytics::make($trades)->only([Counts::class])->calculate(); // make() is the same constructorŽiadne triedy akcií
Balík nemá triedy akcií: je to bezstavový výpočtový engine a manažér len znormalizuje vstup a vytvorí engine. Nastavenie cez using() na singletone platí rovnako pre injektovaných manažérov aj pre fasádu.
Prejavte lásku k open source
Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.
Ďalšie spôsoby podpory vrátane kryptomienOdoslaním daru súhlasíte s našimi podmienkami prijímania darov.
Chcete to zabudovať do svojho produktu?
Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.