Si hablamos de paquetes y plugins para el framework CakePHP podemos encontrar un sin fin de ellos y para todas las necesidades, revisando algunos repositorios de GitHub me encontré con paquetes bastante útiles que nos ayudan en el proceso de desarrollo de nuestras aplicaciones web, en este artículo me voy a enfocar en plugins para el editor de texto Sublime Text v2. Encontré un par de plugins que nos facilitará la vida al momento de codificar con este editor de texto, les hablo de «Native Sublime Text 2 CakePHP Package» de su autor Jose Diaz Gonzales y «Sublime Text 2/3 Snippets for CakePHP» tal como lo describe su autor Michael Tuttle, menciono a los autores de cada uno de estos paquetes porque desde mi punto de vista vale la pena revisar su trabajo y valorarlo. Existe otro plugin para Sublime Text v2 llamado «CakePHP TextMate Bundle» que fue de los primeros para CakePHP pero revisando sus commits descubrí que su ultima actualización lo hizo el año 2012, de tal forma es que preferí enfocarme en los 2 plugins anteriormente mencionados.
Quiero aclarar que no voy a enfocarme en la instalación de los plugins en Sublime Text v2 ya que en Internet podemos encontrar bastante información y tutoriales para la instalación de cualquier plugin para Sublime Text v2 sin distinción alguna, el propósito del artículo es mostrar las características que compone cada uno de estos plugins para CakePHP.
El primer paquete de Jose Gonzales nos brinda un conjunto de snippets para Sublime Text v2, estos snippets son básicos pero bastante útiles, lamentablemente en su repositorio de GitHub no encontraremos la documentación necesaria para poder manejarlo, pero con tan solo revisar los archivos que nos instala en el directorio Package de nuestra instalación de sublime text v2, seremos capaces de poder ejecutar los snippets que nos trae este grandioso plugin.
A continuación te muestro una imagen de las estadísticas del plugin desde la página oficial de package control de sublime text:
Este plugin nos ofrece snippets tanto para controladores, modelos, vistas, componentes y casos de pruebas, como este plugin carece del uso y especificaciones de sus snippets (o por lo menos yo no lo encontré en su repositorio oficial) he desarrollado unas tablas de especificaciones por cada uno de estos snippets para así poder sacarle el mayor provecho, a continuación te describo cada uno de ellos:
Snippets para Componentes
Atajo | Contenido |
write | $this->Cookie->write(); |
read | $this->Cookie->read(); |
check | $this->Cookie->check(); |
delete | $this->Cookie->delete(); |
destroy | $this->Cookie->destroy(); |
type | $this->Cookie->type(); |
newcomponent | Crear nuevo componente |
Snippets para Controladores
Atajo | Contenido |
newcontroller | Crear nuevo controlador |
newcontrolleradmin | Crear nuveo controlador admin |
Snippets para Modelos
Atajo | Contenido |
addbelongsto | Relación belongsTo |
relationdetail | Detalle de una relación |
createmodel | Crear nuevo modelo |
hasmany | Relación hasMany |
hasone | Relación hasOne |
Snippets para Vistas (Helper Form)
Atajo | Contenido |
button | $this->Form->button(); |
checkbox | $this->Form->checkbox(); |
create | $this->Form->create(); |
dateTime | $this->Form->dateTime(); |
day | $this->Form->day(); |
end | $this->Form->end(); |
error | $this->Form->error(); |
file | $this->Form->file(); |
hidden | $this->Form->hidden(); |
hour | $this->Form->hour(); |
input | $this->Form->input(); |
inputDefaults | $this->Form->inputDefaults(); |
inputs | $this->Form->inputs(); |
isFieldError | $this->Form->isFieldError(); |
label | $this->Form->label(); |
meridian | $this->Form->meridian(); |
minute | $this->Form->minute(); |
month | $this->Form->month(); |
postButton | $this->Form->postButton(); |
postLink | $this->Form->postLink(); |
radio | $this->Form->radio(); |
secure | $this->Form->secure(); |
select | $this->Form->select(); |
submit | $this->Form->submit(); |
tagIsInvalid | $this->Form->tagIsInvalid(); |
textarea | $this->Form->textarea(); |
unlockField | $this->Form->unlockField(); |
year | $this->Form->year(); |
Snippets para Vistas (Helper Html)
Atajo | Contenido |
addcrumb | $this->Html->addCrumb(); |
doctype | $this->Html->docType(); |
charset | $this->Html->charset(); |
css | $this->Html->css(); |
div | $this->Html->div(); |
getCrumbList | $this->Html->getCrumbList(); |
getCrumbs | $this->Html->getCrumbs(); |
image | $this->Html->image(); |
link | $this->Html->link(); |
loadConfig | $this->Html->loadConfig(); |
media | $this->Html->media(); |
meta | $this->Html->meta(); |
nestedList | $this->Html->nestedList(); |
para | $this->Html->para(); |
script | $this->Html->script(); |
scriptBlock | $this->Html->scriptBlock(); |
scriptEnd | $this->Html->scriptEnd(); |
scriptStart | $this->Html->scriptStart(); |
style | $this->Html->style(); |
tableCells | $this->Html->tableCells(); |
tableHeaders | $this->Html->tableHeaders(); |
tag | $this->Html->tag(); |
useTag | $this->Html->useTag(); |
Snippets para Vistas (Helper Js)
Atajo | Contenido |
alert | $this->Js->alert(); |
buffer | $this->Js->buffer(); |
confirm | $this->Js->confirm(); |
confirmReturn | $this->Js->confirmReturn(); |
domReady | $this->Js->domReady(); |
drag | $this->Js->drag(); |
drop | $this->Js->drop(); |
each | $this->Js->each(); |
effect | $this->Js->effect(); |
escape | $this->Js->escape(); |
event | $this->Js->event(); |
get | $this->Js->get(); |
getBuffer | $this->Js->getBuffer(); |
link | $this->Js->link(); |
object | $this->Js->object(); |
prompt | $this->Js->prompt(); |
redirect | $this->Js->redirect(); |
request | $this->Js->request(); |
serializeForm | $this->Js->serializeForm(); |
set | $this->Js->set(); |
slider | $this->Js->slider(); |
sortable | $this->Js->sortable(); |
submit | $this->Js->submit(); |
writeBuffer | $this->Js->writeBuffer(); |
value | $this->Js->value(); |
Snippets para Vistas (Helper Paginator)
Atajo | Contenido |
sort | $this->Paginator->sort(); |
sortDir | $this->Paginator->sortDir(); |
sortKey | $this->Paginator->sortKey(); |
numbers | $this->Paginator->numbers(); |
prev | $this->Paginator->prev(); |
next | $this->Paginator->next(); |
first | $this->Paginator->first(); |
last | $this->Paginator->last(); |
current | $this->Paginator->current(); |
hasNext | $this->Paginator->hasNext(); |
hasPrev | $this->Paginator->hasPrev(); |
hasPage | $this->Paginator->hasPage(); |
counter | $this->Paginator->counter(); |
options | $this->Paginator->options(); |
link | $this->Paginator->link(); |
url | $this->Paginator->url(); |
defaultModel | $this->Paginator->defaultModel(); |
params | $this->Paginator->params(); |
Snippets para Vistas (Helper Session)
Atajo | Contenido |
read | $this->Session->read(); |
check | $this->Session->check(); |
error | $this->Session->error(); |
valid | $this->Session->valid(); |
flash | $this->Session->flash(); |
Snippets para Vistas (Helper Text)
Atajo | Contenido |
autoLinkEmails | $this->Text->autoLinkEmails(); |
autoLinkUrls | $this->Text->autoLinkUrls(); |
autoLink | $this->Text->autoLink(); |
highlight | $this->Text->highlight(); |
stripLinks | $this->Text->stripLinks(); |
truncate | $this->Text->truncate(); |
tail | $this->Text->tail(); |
excerpt | $this->Text->excerpt(); |
toList | $this->Text->toList(); |
Snippets para Vistas (Helper Time)
Atajo | Contenido |
convert | $this->Time->convert(); |
convertSpecifiers | $this->Time->convertSpecifiers(); |
dayAsSql | $this->Time->dayAsSql(); |
daysAsSql | $this->Time->daysAsSql(); |
format | $this->Time->format(); |
fromString | $this->Time->fromString(); |
gmt | $this->Time->gmt(); |
i18nFormat | $this->Time->i18nFormat(); |
nice | $this->Time->nice(); |
niceShort | $this->Time->niceShort(); |
serverOffset | $this->Time->serverOffset(); |
timeAgoInWords | $this->Time->timeAgoInWords(); |
toAtom | $this->Time->toAtom(); |
toQuarter | $this->Time->toQuarter(); |
toRSS | $this->Time->toRSS(); |
toUnix | $this->Time->toUnix(); |
toServer | $this->Time->toServer(); |
timezone | $this->Time->timezone(); |
listTimezones | $this->Time->listTimezones(); |
isToday | $this->Time->isToday(); |
isThisWeek | $this->Time->isThisWeek(); |
isThisMonth | $this->Time->isThisMonth(); |
isThisYear | $this->Time->isThisYear(); |
wasYesterday | $this->Time->wasYesterday(); |
isTomorrow | $this->Time->isTomorrow(); |
wasWithinLast | $this->Time->wasWithinLast(); |
Snippets para TestCase
Atajo | Contenido |
assertEqual | $this->assertEqual(); |
assetFalse | $this->assetFalse(); |
assertPattern | $this->assertPattern(); |
assetTrue | $this->assetTrue(); |
Como puedes observar en las tablas existe una amplia variedad de snippets que nos trae este plugin, por lo que vale la pena utilizarlo al momento de desarrollar nuestras aplicaciones web con el framework CakePHP.
Página en GitHub: https://github.com/josegonzalez/sublimetext-cakephp
El segundo plugin de Michael Tuttle nos trae otra amplia variedad de snippets tanto para componentes, controladores, modelos, helpers y muchos más, lo bueno de este plugin es que se encuentra bien documentado por lo cual, desde su repositorio de GitHub puedes encontrar los pasos para su instalación como también los atajos y contenidos de cada uno de sus snippets. Para el caso de este segundo plugin no vi conveniente desarrollar la especificación de sus snippets ya que como bien dije este se encuentra bastante y bien documentado. Algo a tomar en cuenta al momento de instalar el paquete desde sublime text v2 es que previamente debemos agregar su repositorio desde la opción Package Control: Add Repository una vez agregado el repositorio ya puedes proceder a instalar el paquete.
Página en GitHub:https://github.com/openam/SublimeCakePHP
Ahora dime tú, que te parecieron este par de plugins o conoces algun otro? puedes compartirlo dejando un comentario y si el artículo te pareció útil e interesante compártelo en las redes sociales. Todo tipo de herramientas que nos facilite el desarrollo de nuestras aplicaciones web siempre serán necesarios en nuestro día a día, así es que te animo a probarlos y me cuentes como te fue 8-)
Saludos!!!

muy interesante ingeniero espero poder explotar estos plugins yo tb uso el sublime gracias por su ayuda .. mas datos despues (dante)
Gracias por tu comentario y me alegro que te hayan sido útiles los plugins para Sublime Text. Saludos!!!
ingeniero muy interesante todo el material de este framework, la verdad hasta ahora incurcionando en cakephp pero gracias a sus tutoriales cada dia lo entiendo mas
Hola Cristian, gracias por tu comentario y seguir mi trabajo, espero le saques mucho provecho al contenido y al Curso de CakePHP. Saludos!!!
Edson disculpa como puedo instalarlos en sublimeText 3
Hola Andres, yo lo he probado en la versión 2, no sabría decirte si la instalación es igual para la versión 3, pero pruebalo ya que hasta donde se lo instala como un paquete más. Avisame como te fue. Saludos!!!
Estimado edson no puedo hacerlo funcionar ninguno :( ni en el sublime 3 ni en el 2 no se que pasa, algun tip o algo especial que hay que hacer para que funcionen
Hola Gustavo yo lo tengo funcionando en Sublime Text 2, cual de los dos no te funciona? recuerda que para el segundo necesitas agregar primero su repositorio Package Control: Add Repository . Prueba también desinstalar ambos e instalarlo nuevamente paso a paso, no se me ocurre mas ya que yo lo probé en dos computadoras y me funciona sin problema alguno.