A super easy PHP Framework for web development! https://github.com/exacti/phacil-framework
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

83 lines
1.7 KiB

<?php
/*
* Copyright © 2021 ExacTI Technology Solutions. All rights reserved.
* GPLv3 General License.
* https://exacti.com.br
* Phacil PHP Framework - https://github.com/exacti/phacil-framework
*/
namespace Phacil\Framework\Interfaces;
/**
* Action interface.
*
* @since 2.0.0
* @package Phacil\Framework\Interfaces
*/
interface Action {
const APP = "APP";
const SYSTEM = "SYSTEM";
const MAX_ROUTE_LENGTH = 255;
const REGEX_CLASS_SANITIZE = '/[^a-zA-Z0-9]/';
const REGEX_ROUTE_SANITIZE = '/[^a-zA-Z0-9_]/';
/**
* @param string $route HTTP route for the respective controller
* @param array $args (Optional) Args to be pass for the method controller
* @param string $local (Optional) Set if the action is a system or app controller
* @return void
*/
public function __construct($route, $args = array(), $local = self::APP);
/**
* Return the controller file path
*
* @since 1.0.0
* @return string
*/
public function getFile();
/**
* Return the class of controller
*
* @deprecated 2.0.0 This method return only legacy class. Use getClassAlt instead.
* @see \Phacil\Framework\Interfaces\Action::getClassAlt()
*
* @since 1.0.0
* @return string */
public function getClass();
/**
* Set the class of controller to be loaded
*
* @param string $class
* @return $this
*/
public function setClass($class);
/**
* Get all possible classes for controller in the new 2.0 framework version
*
* @since 2.0.0
*
* @return array
*/
public function getClassAlt();
/**
* Return the method to be loaded
*
* @return string
* @since 1.0.0
*/
public function getMethod();
/**
* Return the args
*
* @return array
* @since 1.0.0
*/
public function getArgs();
}