* Jordi Boggiano * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Composer\Package; /** * Defines package metadata that is not necessarily needed for solving and installing packages * * @author Nils Adermann */ interface CompletePackageInterface extends PackageInterface { /** * Returns the scripts of this package * * @return array Map of script name to array of handlers */ public function getScripts(); /** * @param array $scripts * @return void */ public function setScripts(array $scripts); /** * Returns an array of repositories * * @return mixed[] Repositories */ public function getRepositories(); /** * Set the repositories * * @param mixed[] $repositories * @return void */ public function setRepositories(array $repositories); /** * Returns the package license, e.g. MIT, BSD, GPL * * @return string[] The package licenses */ public function getLicense(); /** * Set the license * * @param string[] $license * @return void */ public function setLicense(array $license); /** * Returns an array of keywords relating to the package * * @return string[] */ public function getKeywords(); /** * Set the keywords * * @param string[] $keywords * @return void */ public function setKeywords(array $keywords); /** * Returns the package description * * @return ?string */ public function getDescription(); /** * Set the description * * @param string $description * @return void */ public function setDescription($description); /** * Returns the package homepage * * @return ?string */ public function getHomepage(); /** * Set the homepage * * @param string $homepage * @return void */ public function setHomepage($homepage); /** * Returns an array of authors of the package * * Each item can contain name/homepage/email keys * * @return array */ public function getAuthors(); /** * Set the authors * * @param array $authors * @return void */ public function setAuthors(array $authors); /** * Returns the support information * * @return array{issues?: string, forum?: string, wiki?: string, source?: string, email?: string, irc?: string, docs?: string, rss?: string, chat?: string} */ public function getSupport(); /** * Set the support information * * @param array{issues?: string, forum?: string, wiki?: string, source?: string, email?: string, irc?: string, docs?: string, rss?: string, chat?: string} $support * @return void */ public function setSupport(array $support); /** * Returns an array of funding options for the package * * Each item will contain type and url keys * * @return array */ public function getFunding(); /** * Set the funding * * @param array $funding * @return void */ public function setFunding(array $funding); /** * Returns if the package is abandoned or not * * @return bool */ public function isAbandoned(); /** * If the package is abandoned and has a suggested replacement, this method returns it * * @return string|null */ public function getReplacementPackage(); /** * @param bool|string $abandoned * @return void */ public function setAbandoned($abandoned); /** * Returns default base filename for archive * * @return ?string */ public function getArchiveName(); /** * Sets default base filename for archive * * @param string $name * @return void */ public function setArchiveName($name); /** * Returns a list of patterns to exclude from package archives * * @return string[] */ public function getArchiveExcludes(); /** * Sets a list of patterns to be excluded from archives * * @param string[] $excludes * @return void */ public function setArchiveExcludes(array $excludes); }