Forráskód Böngészése

Enhanced repository interface

everzet 13 éve
szülő
commit
9f98ee25ea

+ 24 - 0
src/Composer/Repository/RepositoryInterface.php

@@ -12,10 +12,34 @@
 
 namespace Composer\Repository;
 
+use Composer\Package\PackageInterface;
+
 /**
+ * Repository interface.
+ *
  * @author Nils Adermann <naderman@naderman.de>
+ * @author Konstantin Kudryashov <ever.zet@gmail.com>
  */
 interface RepositoryInterface extends \Countable
 {
+    /**
+     * Initializes repository (reads file, opens connection).
+     */
+    function initialize();
+
+    /**
+     * Checks if specified package registered (installed).
+     *
+     * @param   PackageInterface    $package    package instance
+     *
+     * @return  Boolean
+     */
+    function hasPackage(PackageInterface $package);
+
+    /**
+     * Returns list of registered packages.
+     *
+     * @return  array
+     */
     function getPackages();
 }

+ 42 - 0
src/Composer/Repository/WritableRepositoryInterface.php

@@ -0,0 +1,42 @@
+<?php
+
+/*
+ * This file is part of Composer.
+ *
+ * (c) Nils Adermann <naderman@naderman.de>
+ *     Jordi Boggiano <j.boggiano@seld.be>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Composer\Repository;
+
+use Composer\Package\PackageInterface;
+
+/**
+ * Writable repository interface.
+ *
+ * @author Konstantin Kudryashov <ever.zet@gmail.com>
+ */
+interface WritableRepositoryInterface extends RepositoryInterface
+{
+    /**
+     * Writes repository (f.e. to the disc).
+     */
+    function write();
+
+    /**
+     * Adds package to the repository.
+     *
+     * @param   PackageInterface    $package    package instance
+     */
+    function addPackage(PackageInterface $package);
+
+    /**
+     * Removes package from the repository.
+     *
+     * @param   PackageInterface    $package    package instance
+     */
+    function removePackage(PackageInterface $package);
+}