Guía de Actualización
Actualizando a V4
Así que ha decidido hacer la actualización a v4, ¡felicitaciones!
Phalcon v4 trae muchos cambios en los componentes, interfaces, tipos estrictos, adición y eliminación de componentes. El objetivo de esta guía es ayudarle a actualizar una aplicación existente en Phalcon a la v4. Se delinearán las áreas en las cuales se debe poner atención para hacer los cambios necesarios, de tal manera que el código se siga ejecutando con la misma armonía que en v3. A pesar de que los cambios son considerables, la tarea de actualización será más metódica que abrumadora.
Requerimentos
PHP 7.2
Phalcon v4 soporta sólo PHP 7.2 y superiores. PHP 7.1 fue publicado hace 2 años y su soporte activo ha caducado, así que decidimos seguir activamente las versiones soportadas de PHP.
PSR (Recomendaciones Estándar de PHP)
Phalcon requiere la extensión PSR. La extensión se puede descargar y compilar desde este repositorio de GitHub. Las instrucciones de instalación están disponibles en el archivo README
del repositorio. Una vez que la extensión haya sido compilada y esté disponible en su sistema, necesitará cargarla a su php.ini
. Necesitarás añadir esta línea:
before
Alternativamente algunas distribuciones añaden un prefijo numérico en los archivos ini
. Si ese es el caso, elija un número alto para Phalcon (por ejemplo 50-phalcon.ini
).
Instalación
Descarga la última zephir.phar
desde aquí. Añada a una carpeta a la que puede acceder su sistema.
Clonar el repositorio
git clone https://github.com/phalcon/cphalcon
Compilación de Phalcon
cd cphalcon/
git checkout tags/v4.0.0 ./
zephir fullclean
zephir build
Comprueba el módulo
Notas generales
Aplicaciones
Phalcon\Mvc\Application
, Phalcon\Mvc\Micro
y Phalcon\Mvc\Router
ahora deben tener una URI para procesar
Excepciones
Exception
se a cambiado por Throwable
Components
ACL
Estado: cambios requeridos
Uso: Documentación ACL
En componente ACL se le ha cambiado el nombre a algunos métodos y componentes. La funcionalidad sigue siendo la misma que en versiones anteriores.
Resumen
Los componentes necesarios para trabajar con ACL han sido renombrados. En particular Resource
ha sido renombrado a Component
en todas las interfaces, clases y métodos relevantes que utiliza este componente.
Acl\Adapter\Memory
- Añadido
getActiveKey
, activeFunctionCustomArgumentsCount
y getActiveFunction
para obtener la última clave, número de argumentos personalizados y la función usada para adquirir el acceso
- Añadido soporte a
addOpertion
para múltiples heredados
Acl\Enum (Constantes)
Ejemplo:
use Phalcon\Acl\Enum;
echo Enum::ALLOW; //imprime 1
echo Enum::DENY; //imprime 0
Assets
Estado: cambios requeridos
Uso: Documención de Assets
Los filtros CSS y JS se han eliminado del componente Assets. Debido a limitaciones de licencia, se han eliminado los minizadores de CSS y JS (filtros) para la v4. En futuras versiones con la ayuda de la comunidad podemos volver a introducir estos filtros. Usted siempre puede implementar los suyos propios implementando Phalcon\Assets\FilterInterface
.
- Eliminado
Phalcon\Assets\Filters\CssMin
- Eliminado
Phalcon\Assets\Filters\JsMin
- Renombrado
Phalcon\Assets\Resource
a Phalcon\Assets\Asset
- Renombrado
Phalcon\Assets\ResourceInterface
a Phalcon\Assets\AssetInterface
- Renombrado
Phalcon\Assets\Manager::addResource
a Phalcon\Assets\Manager::addAsset
- Renombrado
Phalcon\Assets\Manager::addResourceByType
a Phalcon\Assets\Manager::addAssetByType
- Renombrado
Phalcon\Assets\Manager::collectionResourcesByType
a Phalcon\Assets\Manager::collectionAssetsByType
Cache
Estado: cambios requeridos
Uso: Documentación de Cache
Los adaptadores xcache
, apc
y memcache
han sido deprecados y eliminados. Los dos primeros no soportan PHP 7.2+. apc
ha sido reemplazado por apcu
y memcache
puede ser reemplazado por el libmemcached
.
- Eliminado
Phalcon\Annotations\Adapter\Apc
- Eliminado
Phalcon\Annotations\Adapter\Xcache
- Eliminado
Phalcon\Cache\Backend\Apc
- Eliminado
Phalcon\Cache\Backend\Memcache
- Eliminado
Phalcon\Cache\Backend\Xcache
- Eliminado
Phalcon\Mvc\Model\Metadata\Apc
- Eliminado
Phalcon\Mvc\Model\Metadata\Memcache
- Eliminado
Phalcon\Mvc\Model\Metadata\Xcache
El componente Cache
ha sido reescrito para cumplir con el PSR-16. Esto permite que se utilice Phalcon\Cache en cualquier aplicación que utilice PSR-16, no solo en aplicaciones basadas en Phalcon.
En la v3, la caché se dividió en dos componentes, el Frontend y el Backend. Esto creó un poco de confusión, pero era funcional. Para crear un componente de caché primero tenías que crear el Frontend y luego inyectarlo al Backend correspondiente (que actuaba como adaptador también).
Ahora en la v4, hemos reescrito el componente completamente. Primero creamos una clase Storage
que es la base de las clases de caché. Creamos clases Serializer cuya única responsabilidad es serializar y desserializar los datos antes de guardarlos en el adaptador de caché y después de recuperarlos. Estas clases son inyectadas (basadas en la elección del desarrollador) a un objeto Adapter que se conecta a un backend (Memcached
, Redis
etc.), mientras cumple con una interfaz común de adaptador.
La clase Cache implementa PSR-16 y acepta un adaptador en su constructor, que a su vez está haciendo todo el trabajo pesado con la conexión al almacenamiento y la manipulación de datos.
Para una explicación más detallada sobre cómo funciona el nuevo componente de Caché, por favor visite la página correspondiente en nuestra documentación.
Creando un Cache
<?php
use Phalcon\Cache;
use Phalcon\Cache\AdapterFactory;
use Phalcon\Storage\Serializer\SerializerFactory;
$serializerFactory = new SerializerFactory();
$adapterFactory = new AdapterFactory($serializerFactory);
$options = [
'defaultSerializer' => 'Json',
'lifetime' => 7200
];
$adapter = $adapterFactory->newInstance('apcu', $options);
$cache = new Cache($adapter);
Registrándolo en el DI
<?php
use Phalcon\Cache;
use Phalcon\Cache\AdapterFactory;
use Phalcon\Storage\Serializer\SerializerFactory;
$container = new Di();
$container->set(
'cache',
function () {
$options = [
'defaultSerializer' => 'Json',
'lifetime' => 7200
];
$adapter = (new AdapterFactory(new SerializerFactory()))
->newInstance('apcu', $options);
return new Cache($adapter);
}
);
CLI
Estado: cambios requeridos
Uso: Documentación de CLI
Parámetros
Los parámetros ahora se comportan de la misma manera que los controladores MVC. Mientras que anteriormente todos existían en la propiedad $params
, ahora puede nombrarlos apropiadamente:
use Phalcon\Cli\Task;
class MainTask extends Task
{
public function testAction(string $yourName, string $myName)
{
echo sprintf(
'Hello %s!' . PHP_EOL,
$yourName
);
echo sprintf(
'Best regards, %s' . PHP_EOL,
$myName
);
}
}
Cli\Console
- Eliminado
Phalcon\Cli\Console::addModules
a favor de Phalcon\Cli\Console::registerModules
Cli\Router\RouteInterface
- Añadido
delimiter
, getDelimiter
Cli\Dispatcher
- Añadido
getTaskSuffix()
, setTaskSuffix()
Cli\DispatcherInterface
- Añadido
setOptions
, getOptions
Container
- Añadido
Phalcon\Container
, una clase proxy del Phalcon\DI
implementando PSR-11
Debug
- Eliminado
Phalcon\Debug::getMajorVersion
Db
- Se añadió el ajuste global
orm.case_insensitive_column_map
para intentar encontrar el valor, en el mapa de columnas, siendo insensiblemente mayúsculas. También se puede activar configurando la clave caseInsensitiveColumnMap
en \Phalcon\Mvc\Model::setup()
- Eliminado el espacio de nombres
Phalcon\Db
. Reemplazado por Phalcon\Db\AbstractDb
para los métodos necesarios y Phalcon\Db\Enum
para las constantes, por ejemplo:
use Phalcon\Db\Enum;
echo Enum::FETCH_ASSOC;
Db\AdapterInterface
- Añadido
fetchColumn
, insertAsDict
, updateAsDict
Db\Adapter\Pdo
- Se han añadido más tipos de columnas para el adaptador Mysql. Soporte de adaptadores
TYPE_BIGINTEGER
TYPE_BIT
TYPE_BLOB
TYPE_BOOLEAN
TYPE_CHAR
TYPE_DATE
TYPE_DATETIME
TYPE_DECIMAL
TYPE_DOUBLE
TYPE_ENUM
TYPE_FLOAT
TYPE_INTEGER
TYPE_JSON
TYPE_JSONB
TYPE_LONGBLOB
TYPE_LONGTEXT
TYPE_MEDIUMBLOB
TYPE_MEDIUMINTEGER
TYPE_MEDIUMTEXT
TYPE_SMALLINTEGER
TYPE_TEXT
TYPE_TIME
TYPE_TIMESTAMP
TYPE_TINYBLOB
TYPE_TINYINTEGER
TYPE_TINYTEXT
TYPE_VARCHAR
Algunos adaptadores no soportan ciertos tipos. Por ejemplo, JSON
no es compatible con Sqlite
. Se cambiará automáticamente a VARCHAR
.
Db\DialectInterface
- Añadido
registerCustomFunction
, getCustomFunctions
, getSqlExpression
Db\Dialect\Postgresql
- Se modificó
addPrimaryKey
para hacer que los nombres de restricciones de clave primaria sean únicos prefijándolos con el nombre de la tabla.
DI
Di\ServiceInterface
- Añadido
getParameter
, isResolved
Di\Service
- Se cambió el constructor del
Phalcon\Di\Service
para que dejara de tomar el nombre del servicio.
Dispatcher
- Eliminado
Phalcon\Dispatcher::setModelBinding()
a favor de Phalcon\Dispatcher::setModelBinder()
- Añadido
getHandlerSuffix()
, setHandlerSuffix()
Events
Events\ManagerInterface
Flash
- Se ha añadido la capacidad de establecer una plantilla personalizada para el mensajero Flash.
- El constructor ya no acepta un array para las clases CSS. Se necesitará usar
setCssClasses()
para establecer tus clases CSS personalizadas para el componente
- El constructor ahora acepta un objeto opcional
Phalcon\Escaper
, así como un objeto Phalcon\Session\Manager
(en el caso de Phalcon\Flash\Session
), en caso de que no desee utilizar el DI y establecerlo usted mismo.
Filter
Estado: cambios requeridos
Uso: Documentación de Filters
El componente Filter
ha sido reescrito, utilizando un localizador de servicios. Cada sanitizador está ahora encerrado en su propia clase y cargado de forma perezosa para proporcionar el máximo rendimiento y el menor uso de recursos posible.
Resumen
La clase Phalcon\Filter
ha sido reescrita para actuar como un localizador de servicios para diferentes sanitizadores. Este objeto le permite limpiar la entrada, como antes, al usar el método sanitize()
.
Los valores saneados se convierten automáticamente a los tipos relevantes. Este es el comportamiento predeterminado para los filtros int
, bool
y float
.
Al instanciar el objeto de filtro, no tiene precargado ningún saneador. Entonces tienes dos opciones:
Cargar todos los sanitizadores por defecto
Puede cargar todos los sanitizadores suministrados utilizando el componente Phalcon\Filter\FilterFactory.
<?php
use Phalcon\Filter\FilterFactory;
$factory = new FilterFactory();
$locator = $factory->newInstance();
Llamando a newInstance()
devolverá un objeto Phalcon\Filter con todos los limpiadores registrados. Los sanitizadores están cargados perezosamente, por lo que se instanciaran sólo cuando se les llame desde el localizador.
Cargar solo los sanitizadores que quieras
Puede instanciar el componente Phalcon\Filter y utilizar el método set()
para establecer todos los limpiadores que necesite. o pasar un array en el constructor con los limpiadores que desea registrar.
Usando FactoryDefault
Si utiliza el contenedor Phalcon\Di\FactoryDefault, entonces el Phalcon\Filter se carga automáticamente en el contenedor. Luego puede continuar usando el servicio en sus controladores o componentes como lo hacia antes. El nombre del servicio del DI es filter
, como antes.
También los componentes que utilizan el servicio de filtros, como el objeto Request, utilizan de forma transparente el nuevo localizador de filtros. No se requieren cambios adicionales para esos componentes.
Usando un DI
personalizado
Si usted mismo ha configurado todos los servicios en el Phalcon\Di y necesita el servicio de filtro, necesitarás cambiar su registro de la siguiente manera:
<?php
use Phalcon\Di;
use Phalcon\Filter\FilterFactory;
$container = new Di();
$container->set(
'filter',
function () {
$factory = new FilterFactory();
return $factory->newInstance();
}
);
NOTA: Tenga en cuenta que incluso si registra el servicio de filtro manualmente, el nombre del servicio debe ser filter para que otros componentes puedan usarlo
Constantes
Las constantes de la v3 en Phalcon\Filter
han cambiado.
Eliminado
FILTER_INT_CAST
(int!
)
FILTER_FLOAT_CAST
(float!
)
Por defecto, el servicio de sanitizadores convierten el valor al tipo apropiado por lo que estos son obsoletos
FILTER_APHANUM
ha sido removido, reemplazado por FILTER_ALNUM
Cambiado
FILTER_SPECIAL_CHARS
ha sido eliminado, reemplazado por FILTER_SPECIAL
FILTER_ALNUM
reemplaza a FILTER_ALPHANUM
FILTER_ALPHA
sanitiza solo caracteres alfabéticos
FILTER_BOOL
sanitiza booleanos incluyendo “yes”, “no”, etc.
FILTER_LOWERFIRST
sanitiza usando lcfirst
FILTER_REGEX
sanitiza basado en un patrón (preg_replace
)
FILTER_REMOVE
sanitiza eliminando caracteres (str_replace
)
FILTER_REPLACE
sanitiza reemplazando caracteres (str_replace
)
FILTER_SPECIAL
reemplaza a FILTER_SPECIAL_CHARS
FILTER_SPECIALFULL
sanitiza caracteres especiales (filter_var
)
FILTER_UPPERFIRST
sanitiza utilizando ucfirst
FILTER_UPPERWORDS
sanitiza utilizando ucwords
Phalcon\Forms\Form::clear
ya no llamará Phalcon\Forms\Element::clear
, en su lugar limpiará/establecerá el valor por defecto en sí mismo, y Phalcon\Forms\Element::clear
ahora llamará a Phalcon\Forms\Form::clear
si está asignado al formulario, de lo contrario, se limpiara a si mismo.
Phalcon\Forms\Form::getValue
ahora también intentará obtener el valor llamando Tag::getValue
o el método getDefault
del elemento antes de devolver null
, y Phalcon\Forms\Element::getValue
llama a Tag::getDefault
solo si no se añade al formulario.
Html
Html\Breadcrumbs
- Añadido
Phalcon\Html\Breadcrumbs
, un componente que crea código HTML para migas de pan.
Html\Tag
- Añadido
Phalcon\Html\Tag
, un componente que crea elementos HTML. Reemplazará a Phalcon\Tag
en una versión futura. Este componente no utiliza llamadas a métodos estáticos.
Http\RequestInterface
- Eliminado
isSecureRequest
a favor de isSecure
- Eliminado
isSoapRequested
a favor de isSoap
Http\Response
- Se añadió el método
hasHeader()
a Phalcon\Http\Response
para proporcionar la capacidad de comprobar si existe un encabezado.
- Añadido
Phalcon\Http\Response\Cookies::getCookies
- Modificado
setHeaders
ahora combina los encabezados con los preexistentes en la colección interna
- Se añadieron dos nuevos eventos
response::beforeSendHeaders
y response::afterSendHeaders
Imagen
- Añadido
Phalcon\Image\Enum
- Renombrado
Phalcon\Image\Adapter
a Phalcon\Image\Adapter\AbstractAdapter
- Renombrado
Phalcon\Image\Factory
a Phalcon\Image\ImageFactory
- Eliminado
Phalcon\Image
Image\Enum (Constantes)
Ejemplo:
<?php
use Phalcon\Image\Enum;
// Restricciones de redimensionado
echo Enum::AUTO; // imprime 4
echo Enum::HEIGHT; // imprime 3
echo Enum::INVERSE; // imprime 5
echo Enum::NONE; // imprime 1
echo Enum::PRECISE; // imprime 6
echo Enum::TENSILE; // imprime 7
echo Enum::WIDTH; // imprime 2
// Direcciones de volteado
echo Enum::HORIZONTAL; // imprime 11
echo Enum::VERTICAL; // imprime 12
Logger
Estado: cambios requeridos
Uso: Documentación de Logger
El componente Logger
ha sido reescrito para cumplir con el PSR-3. Esto le permite utilizar el Phalcon\Logger para cualquier aplicación que utilice un registro PSR-3 y no solo las basadas en Phalcon.
En Phalcon v3.x el componente trae incorporado el adaptador. Esto en esencia significa que cuando se inicia el objeto de registro, el desarrollador está en realidad creando un adaptador (de archivo, flujo, etc.) con capacidad de registro.
En Phalcon v4 el componente se reescribió de tal manera que se dedica a la función de registro y acepta uno o más adaptadores que serán los responsables de las tareas de registro. Así se logra la compatibilidad con PSR-3, se separan las responsabilidades del componente y se logra la funcionalidad de registro múltiple: fácilmente se puede agregar más de un adaptador al componente, cada uno realizando su propio registro. Con esta implementación se redujo el código del registro y se supimió el componente Logger\Multiple
.
Crear un componente Logger
<?php
use Phalcon\Logger;
use Phalcon\Logger\Adapter\Stream;
$adapter = new Stream('/logs/application.log');
$logger = new Logger(
'messages',
[
'main' => $adapter,
]
);
$logger->error('Algo falló');
Registrándolo en el DI
<?php
use Phalcon\Di;
use Phalcon\Logger;
use Phalcon\Logger\Adapter\Stream;
$container = new Di();
$container->set(
'logger',
function () {
$adapter = new Stream('/logs/application.log');
$logger = new Logger(
'messages',
[
'main' => $adapter,
]
);
return $logger;
}
);
Multiples Loggers
El componente Phalcon\Logger\Multiple
ha sido eliminado. Puede lograr la misma funcionalidad usando el componente logger y registrando más de un adaptador:
<?php
use Phalcon\Logger;
use Phalcon\Logger\Adapter\Stream;
$adapter1 = new Stream('/logs/first-log.log');
$adapter2 = new Stream('/remote/second-log.log');
$adapter3 = new Stream('/manager/third-log.log');
$logger = new Logger(
'messages',
[
'local' => $adapter1,
'remote' => $adapter2,
'manager' => $adapter3,
]
);
// Log to all adapters
$logger->error('Algo falló');
Messages
Phalcon\Messages\Message
y su colección Phalcon\Messages\Messages
son nuevos componentes que manejan mensajes para modelos y validación. En el pasado teníamos dos componentes, uno para la validación y otro para los modelos. Hemos fusionado estos dos, así que deberías volver a obtener una MessageInterface[]
al llamar a save
en un modelo o al recuperar mensajes de validación.
- Modificado
Phalcon\Mvc\Model
para usar el objeto Phalcon\Messages\Message
para sus mensajes
- Modificado
Phalcon\Validation\*
para usar el objeto Phalcon\Messages\Message
para sus mensajes
Transacciones
Eliminado en la versión 4.0:
- Eliminado
$logger->begin()
- Eliminado
$logger->commit()
Nivel de registro
- Eliminado
$logger->setLogLevel()
Models
Estado: cambios requeridos
Uso: Documentación de Modelos
- Ya no puede asignar datos a los modelos al guardarlos
Inicialización
El método getSource()
ha sido marcado como final
. Como tal, ya no puede sobreescribir este método en su modelo para establecer la tabla/fuente correspondiente del RDBMS. En su lugar, ahora puede utilizar el método initialize()
y setSource()
para establecer la fuente de su modelo.
<?php
use Phalcon\Mvc\Model;
class Users
{
public function initialize()
{
$this->setSource('Users');
// ....
}
}
Guardar
El método save()
ya no acepta parámetros para establecer datos. En su lugar, puede usar el método assign
.
Criteria
El segundo parámetro de Criteria::limit()
(‘offset’) ahora debe ser un entero o nulo. Anteriormente no existía ningún tipo de requisito.
$criteria->limit(10);
$criteria->limit(10, 5);
$criteria->limit(10, null);
MVC
Estado: cambios requeridos
Uso: Documentación del MVC
Mvc\Collection
- Eliminado
Phalcon\Mvc\Collection::validationHasFailed
- Llamada eliminada
Phalcon\Mvc\Collection::validate
con un objeto de tipo Phalcon\Mvc\Model\ValidatorInterface
Mvc\Micro\Lazyloader
- Se ha eliminado
__call
a favor de callMethod
Mvc\Model
- Eliminado
Phalcon\Model::reset
- Se añadió
isRelationshipLoaded
para comprobar si la relación está cargada
- Cambiado en el método
Phalcon\Model::assign
el orden de los parámetros a $data
, $whiteList
, $dataColumnMap
- Cambió
Phalcon\Model::findFirst
para devolver null
en lugar de false
si no se encontró ningún registro
- Cambiado
Phalcon\Model::getRelated()
para devolver null
para una relación “uno a uno” si no se encontró ningún registro
Mvc\Model\Criteria
- Eliminado
addWhere
- Eliminado
order
- Eliminado
order
a favor del orderBy
Mvc\Model\CriteriaInterface
- Añadido
distinct
, leftJoin
, innerJoin
, rightJoin
, groupBy
, having
, cache
, getColumns
, getGroupBy
, getHaving
Mvc\Model\Manager
load
ya no reutiliza modelos ya inicializados
- Eliminado
Phalcon\Model\Manager::registerNamespaceAlias()
- Eliminado
Phalcon\Model\Manager::getNamespaceAlias()
- Eliminado
Phalcon\Model\Manager::getNamespaceAliases()
- El armado de
Phalcon\Mvc\Model\Manager::getRelationRecords()
ha cambiado
- El armado de
Phalcon\Mvc\Model\Manager::getBelongsToRecords()
ha cambiado
- El armado de
Phalcon\Mvc\Model\Manager::getHasOneRecords()
ha cambiado
- El armado de
Phalcon\Mvc\Model\Manager::getHasManyRecords()
ha cambiado
Mvc\Model\ManagerInterface
- Añadido
isVisibleModelProperty
, keepSnapshots
, isKeepingSnapshots
, useDynamicUpdate
, isUsingDynamicUpdate
, addHasManyToMany
, existsHasManyToMany
, getRelationRecords
, getHasManyToMany
- Eliminado
Phalcon\Model\ManagerInterface::getNamespaceAlias()
- Eliminado
Phalcon\Model\ManagerInterface::registerNamespaceAlias()
Mvc\Model\MessageInterface
- Añadido
setModel
, getModel
, setCode
, getCode
Mvc\Model\QueryInterface
- Añadido
getSingleResult
, setBindParams
, getBindParams
, setBindTypes
, setSharedLock
, getBindTypes
, getSql
Mvc\Model\Query\BuilderInterface
Mvc\Model\Query\Builder
- Añadido soporte para enlazar parámetros. El Query Builder tiene los mismos métodos que
Phalcon\Mvc\Model\Query
; getBindParams
, setBindParams
, getBindTypes
y setBindTypes
.
- Se ha cambiado
addFrom
para eliminar el tercer parámetro $with
Mvc\Model\Query\BuilderInterface
- Añadido
distinct
, getDistinct
, forUpdate
, offset
, getOffset
Mvc\Model\RelationInterface
Mvc\Model\ResultsetInterface
- Añadido
setHydrateMode
, getHydrateMode
, getMessages
, update
, delete
, filter
Mvc\Model\Transaction\ManagerInterface
- Añadido
setDbService
, getDbService
, setRollbackPendent
, getRollbackPendent
Mvc\Model\Validator*
- Eliminado
Phalcon\Mvc\Model\Validator\*
a favor de Phalcon\Validation\Validator\*
Mvc\ModelInterface
- Añadido
getModelsMetaData
Mvc\Router
- Se ha eliminado
getRewriteUri()
. La URI necesita ser pasada en el método handle
del objeto de la aplicación.
Mvc\RouterInterface
Mvc\Router\RouteInterface
- Añadido
convert
para que la llamada add
devuelva una instancia que tiene el método convert
Mvc\Router\RouteInterface
- Añadido el gestor de respuesta a
Phalcon\Mvc\Micro
, Phalcon\Mvc\Micro::setResponseHandler
, para permitir el uso de un gestor de respuesta personalizado.
Mvc\User
- Eliminado
Phalcon\Mvc\User\Component
, utilizar Phalcon\Di\Injectable
en su lugar
- Eliminado
Phalcon\Mvc\User\Module
, utilizar Phalcon\Di\Injectable
en su lugar
- Eliminado
Phalcon\Mvc\User\Plugin
, utilizar Phalcon\Di\Injectable
en su lugar
Mvc\View\Engine\Volt
Las opciones para Volt han cambiado (los nombres de las claves). Usar la sintaxis antigua producirá una advertencia de deprecado. Las nuevas opciones son:
always
- Siempre compila
extension
- Extensión de los archivos
separator
- Separador (usado para las carpetas/rutas)
stat
- Estado de cada archivo antes de intentar usarlo
path
- La ruta de los archivos
prefix
- El prefijo de los archivos
Paginator
getPaginate
ahora se convierte en paginate
$before
es eliminado y reemplazado por $previous
$total_pages
es eliminado ya que contiene la misma información que $last
- Añadido
Phalcon\Paginator\RepositoryInterface
para el repositorio del estado actual del paginator
y también opcionalmente establece los alias para el repositorio de propiedades
Router
- Se ha eliminado
getRewriteUri()
. La URI necesita ser pasada en el método handle
del objeto de la aplicación.
- Puedes añadir
CONNECT
, PURGE
, TRACE
a las rutas al grupo enrutador. Funcionan del mismo modo que funcionan en el Router:
use Phalcon\Mvc\Router\Group;
$group = new Group();
$group->addConnect(
'/api',
[
'controller' => 'api',
'action' => 'connect',
]
);
$group->addPurge(
'/api',
[
'controller' => 'api',
'action' => 'purge',
]
);
$group->addTrace(
'/api',
[
'controller' => 'api',
'action' => 'trace',
]
);
Security
- Eliminado
hasLibreSsl
- Eliminado
getSslVersionNumber
- Añadido
setPadding
- Se ha añadido un retenedor para que el token actual se utilice durante las comprobaciones, así que cuando
getToken
es llamado el token usado para verificaciones no cambia
Request
Http\Request
- Añadido
numFiles
retornando int
- el número de archivos presentes en la solicitud
- Se ha cambiado
hasFiles
para devolver bool
- si la solicitud tiene archivos o no
Http\RequestInterface
- Añadido
numFiles
retornando int
- el número de archivos presentes en la solicitud
- Se ha cambiado
hasFiles
para devolver bool
- si la solicitud tiene archivos o no
Session
Estado: cambios requeridos
Uso: Documentación de Session
Session
y Session\Bag
ya no se cargan por defecto en Phalcon\DI\FactoryDefault
. Session
fue refactorizada.
- Añadido
Phalcon\Session\Adapter\AbstractAdapter
- Añadido
Phalcon\Session\Adapter\Noop
- Añadido
Phalcon\Session\Adapter\Stream
- Añadido
Phalcon\Session\Manager
- Añadido
Phalcon\Session\ManagerInterface
- Eliminado
Phalcon\Session\Adapter
- reemplazado por Phalcon\Session\Adapter\AbstractAdapter
- Eliminado
Phalcon\Session\AdapterInterface
- reemplazado por nativo SessionHandlerInterface
- Eliminado
Phalcon\Session\Adapter\Files
- reemplazado por Phalcon\Session\Adapter\Stream
- Eliminado
Phalcon\Session\Adapter\Memcache
- Eliminado
Phalcon\Session\BagInterface
- Eliminado
Phalcon\Session\Factory
Session\Adapter
Cada adaptador implementa SessionHandlerInterface
de PHP. Los adaptadores disponibles son:
Phalcon\Session\Adapter\AbstractAdapter
Phalcon\Session\Adapter\Libmemcached
Phalcon\Session\Adapter\Noop
Phalcon\Session\Adapter\Redis
Phalcon\Session\Adapter\Stream
Session\Manager
- Ahora es el único componente que ofrece manipulación de sesión mediante el uso de adaptadores (ver arriba). Cada adaptador implementa
SessionHandlerInterface
de PHP
- Los desarrolladores pueden añadir cualquier adaptador que implemente
SessionHandlerInterface
Tag
- Añadido
renderTitle()
que renderiza el título encerrado entre etiquetas <title>
.
- Se ha cambiado
getTitle
. Sólo devuelve el texto del título. Acepta prepend
, append
booleanos para agregar un prefijo o sufijo al título.
- Se ha cambiado
textArea
para usar htmlspecialchars
para prevenir la inyección XSS.
Text
Estado: cambios requeridos
Uso: Documentación de Str
El componente Phalcon\Text
se ha eliminado a favor del Phalcon\Helper\Str
. La funcionalidad ofrecida por Phalcon\Text
en v3 es replicada y mejorada en la nueva clase: Phalcon\Helper\Str
.
Validation
Validation\Message
- Eliminado
Phalcon\Validation\Message
y Phalcon\Mvc\Model\Message
a favor de Phalcon\Messages\Message
- Eliminado
Phalcon\Validation\MessageInterface
y Phalcon\Mvc\Model\MessageInterface
a favor de Phalcon\Messages\MessageInterface
- Eliminado
Phalcon\Validation\Message\Group
a favor de Phalcon\Messages\Messages
- Los mensajes del validador se han movido dentro de cada validador
Validation\Validator
Validation\Validator\Ip
- Añadido
Phalcon\Validation\Validator\Ip
, clase utilizada para validar campos de dirección ip. Permite validar un campo seleccionando IPv4 o IPv6, permitiendo rangos privados o reservados y valores vacíos si es necesario.
Views
Estado: cambios requeridos
Uso: Documentación de View
La caché de vista junto con el servicio de viewCache
se han eliminado del framework porque eran incompatibles con el nuevo componente de caché. Los desarrolladores pueden utilizar fácilmente un caché de vista de servicios externos como Varnish, Cloudflare, etc. Además, los desarrolladores pueden almacenar fragmentos en caché utilizando Phalcon\Mvc\View\Simple::render()
o el Phalcon\Mvc\View::toString()
. Estos dos métodos devuelven el HTML producido que puede ser almacenado en caché en el backend de tu elección.
Url
Estado: cambios requeridos
Uso: Documentación de Url
El componente Phalcon\Mvc\Url
ha sido renombrado a Phalcon\Url
. La funcionalidad sigue siendo la misma.
Cheat Sheet
Acl
3.4.x |
Estado |
4.0.x |
Phalcon\Acl |
Eliminado |
|
Phalcon\Acl\Adapter |
Renombrado a |
Phalcon\Acl\Adapter\AbstractAdapter |
Phalcon\Acl\Resource |
Renombrado a |
Phalcon\Acl\Component |
|
Nuevo |
Phalcon\Acl\Enum |
Annotations
3.4.x |
Estado |
4.0.x |
Phalcon\Annotations\Adapter |
Renombrado a |
Phalcon\Annotations\Adapter\AbstractAdapter |
Phalcon\Annotations\Adapter\Apc |
Eliminado |
|
Phalcon\Annotations\Adapter\Files |
Renombrado a |
Phalcon\Annotations\Adapter\Stream |
Phalcon\Annotations\Adapter\Xcache |
Eliminado |
|
Phalcon\Annotations\Factory |
Renombrado a |
Phalcon\Annotations\AnnotationsFactory |
Application
3.4.x |
Estado |
4.0.x |
Phalcon\Application |
Renombrado a |
Phalcon\Application\AbstractApplication |
Assets
3.4.x |
Estado |
4.0.x |
Phalcon\Assets\Resource |
Renombrado a |
Phalcon\Assets\Asset |
Phalcon\Assets\Resource\Css |
Renombrado a |
Phalcon\Assets\Asset\Css |
Phalcon\Assets\Resource\Js |
Renombrado a |
Phalcon\Assets\Asset\Js |
Cache
3.4.x |
Estado |
4.0.x |
Phalcon\Cache\Backend\Apc |
Eliminado |
|
Phalcon\Cache\Backend |
Renombrado a |
Phalcon\Cache |
Phalcon\Cache\Backend\Factory |
Renombrado a |
Phalcon\Cache\AdapterFactory |
Phalcon\Cache\Backend\Apcu |
Renombrado a |
Phalcon\Cache\Adapter\Apcu |
Phalcon\Cache\Backend\File |
Renombrado a |
Phalcon\Cache\Adapter\Stream |
Phalcon\Cache\Backend\Libmemcached |
Renombrado a |
Phalcon\Cache\Adapter\Libmemcached |
Phalcon\Cache\Backend\Memcache |
Eliminado |
|
Phalcon\Cache\Backend\Memory |
Renombrado a |
Phalcon\Cache\Adapter\Memory |
Phalcon\Cache\Backend\Mongo |
Eliminado |
|
Phalcon\Cache\Backend\Redis |
Renombrado a |
Phalcon\Cache\Adapter\Redis |
|
Nuevo |
Phalcon\Cache\CacheFactory |
Phalcon\Cache\Backend\Xcache |
Eliminado |
|
Phalcon\Cache\Exception |
Renombrado a |
Phalcon\Cache\Exception\Exception |
|
Nuevo |
Phalcon\Cache\Exception\InvalidArgumentException |
Phalcon\Cache\Frontend\Base64 |
Eliminado |
|
Phalcon\Cache\Frontend\Data |
Eliminado |
|
Phalcon\Cache\Frontend\Factory |
Eliminado |
|
Phalcon\Cache\Frontend\Igbinary |
Eliminado |
|
Phalcon\Cache\Frontend\Json |
Eliminado |
|
Phalcon\Cache\Frontend\Msgpack |
Eliminado |
|
Phalcon\Cache\Frontend\None |
Eliminado |
|
Phalcon\Cache\Frontend\Output |
Eliminado |
|
Phalcon\Cache\Multiple |
Eliminado |
|
Colección
3.4.x |
Estado |
4.0.x |
|
Nuevo |
Phalcon\Collection |
|
Nuevo |
Phalcon\Collection\Exception |
|
Nuevo |
Phalcon\Collection\ReadOnly |
Config
3.4.x |
Estado |
4.0.x |
Phalcon\Config\Factory |
Renombrado a |
Phalcon\Config\ConfigFactory |
Container
3.4.x |
Estado |
4.0.x |
|
Nuevo |
Phalcon\Container |
Db
3.4.x |
Estado |
4.0.x |
Phalcon\Db |
Renombrado a |
Phalcon\Db\AbstractDb |
Phalcon\Db\Adapter |
Renombrado a |
Phalcon\Db\Adapter\AbstractAdapter |
Phalcon\Db\Adapter\Pdo |
Renombrado a |
Phalcon\Db\Adapter\Pdo\AbstractPdo |
Phalcon\Db\Adapter\Pdo\Factory |
Renombrado a |
Phalcon\Db\Adapter\PdoFactory |
|
Nuevo |
Phalcon\Db\Enum |
Dispatcher
3.4.x |
Estado |
4.0.x |
Phalcon\Dispatcher |
Renombrado a |
Phalcon\Dispatcher\AbstractDispatcher |
|
Nuevo |
Phalcon\Dispatcher\Exception |
Di
3.4.x |
Estado |
4.0.x |
|
Nuevo |
Phalcon\Di\AbstractInjectionAware |
|
Nuevo |
Phalcon\Di\Exception\ServiceResolutionException |
Domain
3.4.x |
Estado |
4.0.x |
|
Nuevo |
Phalcon\Domain\Payload\Payload |
|
Nuevo |
Phalcon\Domain\Payload\PayloadFactory |
|
Nuevo |
Phalcon\Domain\Payload\Status |
Factory
3.4.x |
Estado |
4.0.x |
Phalcon\Factory |
Renombrado a |
Phalcon\Factory\AbstractFactory |
Filter
3.4.x |
Estado |
4.0.x |
|
Nuevo |
Phalcon\Filter\FilterFactory |
|
Nuevo |
Phalcon\Filter\Sanitize\AbsInt |
|
Nuevo |
Phalcon\Filter\Sanitize\Alnum |
|
Nuevo |
Phalcon\Filter\Sanitize\Alpha |
|
Nuevo |
Phalcon\Filter\Sanitize\BoolVal |
|
Nuevo |
Phalcon\Filter\Sanitize\Email |
|
Nuevo |
Phalcon\Filter\Sanitize\FloatVal |
|
Nuevo |
Phalcon\Filter\Sanitize\IntVal |
|
Nuevo |
Phalcon\Filter\Sanitize\Lower |
|
Nuevo |
Phalcon\Filter\Sanitize\LowerFirst |
|
Nuevo |
Phalcon\Filter\Sanitize\Regex |
|
Nuevo |
Phalcon\Filter\Sanitize\Remove |
|
Nuevo |
Phalcon\Filter\Sanitize\Replace |
|
Nuevo |
Phalcon\Filter\Sanitize\Special |
|
Nuevo |
Phalcon\Filter\Sanitize\SpecialFull |
|
Nuevo |
Phalcon\Filter\Sanitize\StringVal |
|
Nuevo |
Phalcon\Filter\Sanitize\Striptags |
|
Nuevo |
Phalcon\Filter\Sanitize\Trim |
|
Nuevo |
Phalcon\Filter\Sanitize\Upper |
|
Nuevo |
Phalcon\Filter\Sanitize\UpperFirst |
|
Nuevo |
Phalcon\Filter\Sanitize\UpperWords |
|
Nuevo |
Phalcon\Filter\Sanitize\Url |
Flash
3.4.x |
Estado |
4.0.x |
Phalcon\Flash |
Renombrado a |
Phalcon\Flash\AbstractFlash |
3.4.x |
Estado |
4.0.x |
Phalcon\Forms\Element |
Renombrado a |
Phalcon\Forms\Element\AbstractElement |
Helper
3.4.x |
Estado |
4.0.x |
|
Nuevo |
Phalcon\Helper\Arr |
|
Nuevo |
Phalcon\Helper\Exception |
|
Nuevo |
Phalcon\Helper\Fs |
|
Nuevo |
Phalcon\Helper\Json |
|
Nuevo |
Phalcon\Helper\Number |
|
Nuevo |
Phalcon\Helper\Str |
Html
3.4.x |
Estado |
4.0.x |
|
Nuevo |
Phalcon\Html\Attributes |
|
Nuevo |
Phalcon\Html\Breadcrumbs |
|
Nuevo |
Phalcon\Html\Exception |
|
Nuevo |
Phalcon\Html\Helper\AbstractHelper |
|
Nuevo |
Phalcon\Html\Helper\Anchor |
|
Nuevo |
Phalcon\Html\Helper\AnchorRaw |
|
Nuevo |
Phalcon\Html\Helper\Body |
|
Nuevo |
Phalcon\Html\Helper\Button |
|
Nuevo |
Phalcon\Html\Helper\Close |
|
Nuevo |
Phalcon\Html\Helper\Element |
|
Nuevo |
Phalcon\Html\Helper\ElementRaw |
|
Nuevo |
Phalcon\Html\Helper\Form |
|
Nuevo |
Phalcon\Html\Helper\Img |
|
Nuevo |
Phalcon\Html\Helper\Label |
|
Nuevo |
Phalcon\Html\Helper\TextArea |
|
Nuevo |
Phalcon\Html\Link\EvolvableLink |
|
Nuevo |
Phalcon\Html\Link\EvolvableLinkProvider |
|
Nuevo |
Phalcon\Html\Link\Link |
|
Nuevo |
Phalcon\Html\Link\LinkProvider |
|
Nuevo |
Phalcon\Html\Link\Serializer\Header |
|
Nuevo |
Phalcon\Html\TagFactory |
Http
3.4.x |
Estado |
4.0.x |
|
Nuevo |
Phalcon\Http\Message\AbstractCommon |
|
Nuevo |
Phalcon\Http\Message\AbstractMessage |
|
Nuevo |
Phalcon\Http\Message\AbstractRequest |
|
Nuevo |
Phalcon\Http\Message\Exception\InvalidArgumentException |
|
Nuevo |
Phalcon\Http\Message\Request |
|
Nuevo |
Phalcon\Http\Message\RequestFactory |
|
Nuevo |
Phalcon\Http\Message\Response |
|
Nuevo |
Phalcon\Http\Message\ResponseFactory |
|
Nuevo |
Phalcon\Http\Message\ServerRequest |
|
Nuevo |
Phalcon\Http\Message\ServerRequestFactory |
|
Nuevo |
Phalcon\Http\Message\Stream |
|
Nuevo |
Phalcon\Http\Message\StreamFactory |
|
Nuevo |
Phalcon\Http\Message\Stream\Input |
|
Nuevo |
Phalcon\Http\Message\Stream\Memory |
|
Nuevo |
Phalcon\Http\Message\Stream\Temp |
|
Nuevo |
Phalcon\Http\Message\UploadedFile |
|
Nuevo |
Phalcon\Http\Message\UploadedFileFactory |
|
Nuevo |
Phalcon\Http\Message\Uri |
|
Nuevo |
Phalcon\Http\Message\UriFactory |
|
Nuevo |
Phalcon\Http\Server\AbstractMiddleware |
|
Nuevo |
Phalcon\Http\Server\AbstractRequestHandler |
Image
3.4.x |
Estado |
4.0.x |
Phalcon\Image |
Eliminado |
|
Phalcon\Image\Adapter |
Renombrado a |
Phalcon\Image\Adapter\AbstractAdapter |
|
Nuevo |
Phalcon\Image\Enum |
Phalcon\Image\Factory |
Renombrado a |
Phalcon\Image\ImageFactory |
Logger
3.4.x |
Estado |
4.0.x |
|
Nuevo |
Phalcon\Logger\AdapterFactory |
Phalcon\Logger\Adapter |
Renombrado a |
Phalcon\Logger\Adapter\AbstractAdapter |
Phalcon\Logger\Adapter\Blackhole |
Renombrado a |
Phalcon\Logger\Adapter\Noop |
Phalcon\Logger\Adapter\File |
Renombrado a |
Phalcon\Logger\Adapter\Stream |
Phalcon\Logger\Adapter\Firephp |
Eliminado |
|
Phalcon\Logger\Factory |
Renombrado a |
Phalcon\Logger\LoggerFactory |
Phalcon\Logger\Formatter |
Renombrado a |
Phalcon\Logger\Formatter\AbstractFormatter |
Phalcon\Logger\Formatter\Firephp |
Eliminado |
|
Phalcon\Logger\Formatter\Syslog |
Eliminado |
|
Phalcon\Logger\Multiple |
Eliminado |
|
Message (nuevo en V4, Anteriormente Phalcon\Validation\Message en 3.4)
3.4.x |
Estado |
4.0.x |
|
Nuevo |
Phalcon\Messages\Exception |
|
Nuevo |
Phalcon\Messages\Message |
|
Nuevo |
Phalcon\Messages\Messages |
Mvc
3.4.x |
Estado |
4.0.x |
Phalcon\Mvc\Collection |
Renombrado a |
Phalcon\Collection |
Phalcon\Mvc\Collection\Behavior |
Eliminado |
|
Phalcon\Mvc\Collection\Behavior\SoftDelete |
Eliminado |
|
Phalcon\Mvc\Collection\Behavior\Timestampable |
Eliminado |
|
Phalcon\Mvc\Collection\Document |
Eliminado |
|
Phalcon\Mvc\Collection\Exception |
Renombrado a |
Phalcon\Collection\Exception |
Phalcon\Mvc\Collection\Manager |
Eliminado |
|
|
Nuevo |
Phalcon\Collection\ReadOnly |
Phalcon\Mvc\Model\Message |
Renombrado a |
Phalcon\Messages\Message |
Phalcon\Mvc\Model\MetaData\Apc |
Eliminado |
|
Phalcon\Mvc\Model\MetaData\Files |
Renombrado a |
Phalcon\Mvc\Model\MetaData\Stream |
Phalcon\Mvc\Model\MetaData\Memcache |
Eliminado |
|
Phalcon\Mvc\Model\MetaData\Session |
Eliminado |
|
Phalcon\Mvc\Model\MetaData\Xcache |
Eliminado |
|
Phalcon\Mvc\Model\Validator |
Renombrado a |
Phalcon\Validation\Validator |
Phalcon\Mvc\Model\Validator\Email |
Renombrado a |
Phalcon\Validation\Validator\Email |
Phalcon\Mvc\Model\Validator\Exclusionin |
Renombrado a |
Phalcon\Validation\Validator\ExclusionIn |
Phalcon\Mvc\Model\Validator\Inclusionin |
Renombrado a |
Phalcon\Validation\Validator\InclusionIn |
Phalcon\Mvc\Model\Validator\Ip |
Renombrado a |
Phalcon\Validation\Validator\Ip |
Phalcon\Mvc\Model\Validator\Numericality |
Renombrado a |
Phalcon\Validation\Validator\Numericality |
Phalcon\Mvc\Model\Validator\PresenceOf |
Renombrado a |
Phalcon\Validation\Validator\PresenceOf |
Phalcon\Mvc\Model\Validator\Regex |
Renombrado a |
Phalcon\Validation\Validator\Regex |
Phalcon\Mvc\Model\Validator\StringLength |
Renombrado a |
Phalcon\Validation\Validator\StringLength |
Phalcon\Mvc\Model\Validator\Uniqueness |
Renombrado a |
Phalcon\Validation\Validator\Uniqueness |
Phalcon\Mvc\Model\Validator\Url |
Renombrado a |
Phalcon\Validation\Validator\Url |
Phalcon\Mvc\Url |
Renombrado a |
Phalcon\Url |
Phalcon\Mvc\Url\Exception |
Renombrado a |
Phalcon\Url\Exception |
Phalcon\Mvc\User\Component |
Renombrado a |
Phalcon\Di\Injectable |
Phalcon\Mvc\User\Module |
Renombrado a |
Phalcon\Di\Injectable |
Phalcon\Mvc\User\Plugin |
Renombrado a |
Phalcon\Di\Injectable |
Phalcon\Mvc\View\Engine |
Renombrado a |
Phalcon\Mvc\View\Engine\AbstractEngine |
Paginator
3.4.x |
Estado |
4.0.x |
Phalcon\Paginator\Adapter |
Renombrado a |
Phalcon\Paginator\Adapter |
Phalcon\Paginator\Factory |
Renombrado a |
Phalcon\Paginator\PaginatorFactory |
|
Nuevo |
Phalcon\Paginator\Repository |
Queue
3.4.x |
Estado |
4.0.x |
Phalcon\Queue\Beanstalk |
Eliminado |
|
Phalcon\Queue\Beanstalk\Exception |
Eliminado |
|
Phalcon\Queue\Beanstalk\Job |
Eliminado |
|
Session
3.4.x |
Estado |
4.0.x |
Phalcon\Session\Adapter |
Renombrado a |
Phalcon\Session\Adapter\AbstractAdapter |
Phalcon\Session\Adapter\Files |
Renombrado a |
Phalcon\Session\Adapter\Stream |
|
Nuevo |
Phalcon\Session\Adapter\Noop |
Phalcon\Session\Adapter\Memcache |
Eliminado |
|
Phalcon\Session\Factory |
Renombrado a |
Phalcon\Session\Manager |
Storage
3.4.x |
Estado |
4.0.x |
|
Nuevo |
Phalcon\Storage\AdapterFactory |
|
Nuevo |
Phalcon\Storage\Adapter\AbstractAdapter |
|
Nuevo |
Phalcon\Storage\Adapter\Apcu |
|
Nuevo |
Phalcon\Storage\Adapter\Libmemcached |
|
Nuevo |
Phalcon\Storage\Adapter\Memory |
|
Nuevo |
Phalcon\Storage\Adapter\Redis |
|
Nuevo |
Phalcon\Storage\Adapter\Stream |
|
Nuevo |
Phalcon\Storage\Exception |
|
Nuevo |
Phalcon\Storage\SerializerFactory |
|
Nuevo |
Phalcon\Storage\Serializer\AbstractSerializer |
|
Nuevo |
Phalcon\Storage\Serializer\Base64 |
|
Nuevo |
Phalcon\Storage\Serializer\Igbinary |
|
Nuevo |
Phalcon\Storage\Serializer\Json |
|
Nuevo |
Phalcon\Storage\Serializer\Msgpack |
|
Nuevo |
Phalcon\Storage\Serializer\None |
|
Nuevo |
Phalcon\Storage\Serializer\Php |
Translate
3.4.x |
Estado |
4.0.x |
Phalcon\Translate |
Eliminado |
|
Phalcon\Translate\Adapter |
Renombrado a |
Phalcon\Translate\Adapter\AbstractAdapter |
|
Nuevo |
Phalcon\Translate\InterpolatorFactory |
Phalcon\Translate\Factory |
Renombrado a |
Phalcon\Translate\TranslateFactory |
Url
3.4.x |
Estado |
4.0.x |
|
Nuevo |
Phalcon\Url |
|
Nuevo |
Phalcon\Url\Exception |
Validación
3.4.x |
Estado |
4.0.x |
Phalcon\Validation\CombinedFieldsValidator |
Renombrado a |
Phalcon\Validation\AbstractCombinedFieldsValidator |
Phalcon\Validation\Message |
Renombrado a |
Phalcon\Messages\Message |
Phalcon\Validation\Message\Group |
Renombrado a |
Phalcon\Messages\Messages |
Phalcon\Validation\Validator |
Renombrado a |
Phalcon\Validation\AbstractValidator |
|
Nuevo |
Phalcon\Validation\AbstractValidatorComposite |
|
Nuevo |
Phalcon\Validation\Exception |
|
Nuevo |
Phalcon\Validation\ValidatorFactory |
|
Nuevo |
Phalcon\Validation\Validator\File\AbstractFile |
|
Nuevo |
Phalcon\Validation\Validator\File\MimeType |
|
Nuevo |
Phalcon\Validation\Validator\File\Resolution\Equal |
|
Nuevo |
Phalcon\Validation\Validator\File\Resolution\Max |
|
Nuevo |
Phalcon\Validation\Validator\File\Resolution\Min |
|
Nuevo |
Phalcon\Validation\Validator\File\Size\Equal |
|
Nuevo |
Phalcon\Validation\Validator\File\Size\Max |
|
Nuevo |
Phalcon\Validation\Validator\File\Size\Min |
|
Nuevo |
Phalcon\Validation\Validator\StringLength\Max |
|
Nuevo |
Phalcon\Validation\Validator\StringLength\Min |