1<?php 2/** 3 * Interface for destructible services. 4 * 5 * This program is free software; you can redistribute it and/or modify 6 * it under the terms of the GNU General Public License as published by 7 * the Free Software Foundation; either version 2 of the License, or 8 * (at your option) any later version. 9 * 10 * This program is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU General Public License for more details. 14 * 15 * You should have received a copy of the GNU General Public License along 16 * with this program; if not, write to the Free Software Foundation, Inc., 17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 18 * http://www.gnu.org/copyleft/gpl.html 19 * 20 * @file 21 */ 22 23namespace Wikimedia\Services; 24 25/** 26 * DestructibleService defines a standard interface for shutting down a service instance. 27 * The intended use is for a service container to be able to shut down services that should 28 * no longer be used, and allow such services to release any system resources. 29 * 30 * @note There is no expectation that services will be destroyed when the process (or web request) 31 * terminates. 32 */ 33interface DestructibleService { 34 35 /** 36 * Notifies the service object that it should expect to no longer be used, and should release 37 * any system resources it may own. The behavior of all service methods becomes undefined after 38 * destroy() has been called. It is recommended that implementing classes should throw an 39 * exception when service methods are accessed after destroy() has been called. 40 */ 41 public function destroy(); 42 43} 44