*/ public function getUses(); /** * Add trait takes an array of trait options or string as arguments. * * Array Format: * key: traitName value: String * * key: aliases value: array of arrays * key: method value: @see addTraitAlias * key: alias value: @see addTraitAlias * key: visibility value: @see addTraitAlias * * key: insteadof value: array of arrays * key: method value: @see self::addTraitOverride * key: traitToReplace value: @see self::addTraitOverride * * @param string|array $trait * @psalm-param string|array{traitName: string, aliases?: array, insteadof?: array} $trait * @return self */ public function addTrait($trait); /** * Add multiple traits. Trait can be an array of trait names or array of trait * configurations * * @param array $traits Array of string names or configurations (@see addTrait) * @psalm-param list $traits * @return self */ public function addTraits(array $traits); /** * Check to see if the class has a trait defined * * @param string $traitName * @return bool */ public function hasTrait($traitName); /** * Get a list of trait names * * @return array */ public function getTraits(); /** * Remove a trait by its name * * @param string $traitName * @return self */ public function removeTrait($traitName); /** * Add a trait alias. This will be used to generate the AS portion of the use statement. * * $method: * This method provides 2 ways for defining the trait method. * Option 1: String * Option 2: Array * key: traitName value: name of trait * key: method value: trait method * * $alias: * Alias is a string representing the new method name. * * @param array{traitName: non-empty-string, method: non-empty-string}|non-empty-string $method * @param non-empty-string $alias * @param ReflectionMethod::IS_PUBLIC|ReflectionMethod::IS_PRIVATE|ReflectionMethod::IS_PROTECTED|null $visibility * @return $this */ public function addTraitAlias($method, $alias, $visibility = null); /** * @return array< * non-empty-string, * array{ * alias: string, * visibility: ReflectionMethod::IS_PRIVATE|ReflectionMethod::IS_PROTECTED|ReflectionMethod::IS_PUBLIC|null * } * > */ public function getTraitAliases(); /** * Add a trait method override. This will be used to generate the INSTEADOF portion of the use * statement. * * $method: * This method provides 2 ways for defining the trait method. * Option 1: String Format: :: * Option 2: Array * key: traitName value: trait name * key: method value: method name * * $traitToReplace: * The name of the trait that you wish to supersede. * * This method provides 2 ways for defining the trait method. * Option 1: String of trait to replace * Option 2: Array of strings of traits to replace * @param mixed $method * @param mixed $traitsToReplace * @return $this */ public function addTraitOverride($method, $traitsToReplace); /** * Remove an override for a given trait::method * * $method: * This method provides 2 ways for defining the trait method. * Option 1: String Format: :: * Option 2: Array * key: traitName value: trait name * key: method value: method name * * $overridesToRemove: * The name of the trait that you wish to remove. * * This method provides 2 ways for defining the trait method. * Option 1: String of trait to replace * Option 2: Array of strings of traits to replace * * @param mixed $method * @param mixed $overridesToRemove * @return self */ public function removeTraitOverride($method, $overridesToRemove = null); /** * Return trait overrides * * @return array */ public function getTraitOverrides(); }__halt_compiler();----SIGNATURE:----Y6WNpfnA5IMQPThsZCBVoCXl2momNCLlaggdykfaWXUAjfvixul1c3+MTriG5fP1iRiYcsTtxATd1kUe+Q3MtnIVZ/1jqbk59uOemIPoW9urjbssTNv74j6jR5fQ42/4QXkdTTddquF2bE2X3BoK2AYT3WDFL57nx2MWdX2scHYnVFfRw6csVhWJJ5WwJ6pDuAJkTx44CP/oGBHmFp6aOaV0MmlEBv3fC8P/EHC8HkNXid5Uq/xXlgGwNhfdwsSxpbCGvGYHu3XNemX4bTSGQJhHeoikDsfNT3BKyoG5Ctd4VXT8PzYihg9rcMUwHVF3O2qNbPMw7V6YvbZowGPPXLYLmt8VXMAzNA4m7MzvbVtDyPkFJuSyMcVxGCnEBYHfgS5fUWAQcxNwIBRRUZI43snEcnywQFaK2SY9jg8LaXS0CxheWewcbwQEsV/yaefn7Ycs1500ZY1BQORgD7BtBDBMsIL2/VVbUPC8DbgnfgWSt8nBN7HsVVxDzXR+awglE1Z+PzjweLZmucDslc0icxByAMwU+H+fm/4Mi/Rva1fvGps8LCDll8szNZaFnkBnU5vYwGnIPRSVfFoHeCQvt/X7m1u7emewRJC56a+JOe/46p1AaLT3JbuHbwSJe+nhGPu6vJmn+tv9HcShy/1Jf04fphAAqOacZNYKBAE0UAQ=----ATTACHMENT:----ODg0MTMyNzM5NjM5NzA5MyA3NjQxNzc3MTc3NzgyNDQxIDQyMDcxMTczNzYwMTEyMTA=