Projectile Laravel is a minor mode for working with Laravel projects in GNU Emacs. It is based on Projectile.
With Projectile Laravel you are able to:
-
navigate through laravel resources (controllers, models, views, helpers and so on)
-
create those resources using magit like interface
-
jump to php classes and template files
-
run repl
php artisan tinker
-
run db console
php artisan db
-
run development server
php artisan serve
-
npm install
-
composer install
-
open log files with
auto-revert-mode
on -
Goto views & controller from routes/*.php (WIP)
Didn't added yet :(
(use-package projectile-laravel
:straight (projectile-laravel :type git :host github :repo "strikerlulu/projectile-laravel"))
Just add this to your package.el
(package! projectile-laravel :recipe (:host github :repo "strikerlulu/projectile-laravel"))
Use the package as a global mode:
(projectile-laravel-global-mode)
There are some laravel snippets in doom-snippets
By default the buffer of the projectile-laravel-server-mode
is applying the ansi colors. If you find it slow you can disable it with:
(setq projectile-laravel-server-mode-ansi-colors nil)
(define-key projectile-laravel-mode-map (kbd "C-c l") 'projectile-laravel-command-mode-map)
You might want to create your own keybinding for your favorite commands. For example:
(define-key projectile-laravel-mode-map (kbd "C-c m") 'projectile-laravel-find-model)
(define-key projectile-laravel-mode-map (kbd "C-c c") 'projectile-laravel-find-controller)
(define-key projectile-laravel-mode-map (kbd "C-c v") 'projectile-laravel-find-view)
(define-key projectile-laravel-mode-map (kbd "s-RET") 'projectile-laravel-goto-file-at-point)
(define-key projectile-laravel-mode-map (kbd "C-c g") 'projectile-laravel-mode-goto-map)
The name of the hydra is hydra-projectile-laravel
. You can bind it to your preferred key
(define-key projectile-laravel-mode-map (kbd "C-c l") 'hydra-projectile-laravel/body)
;;if you want...
(define-key projectile-laravel-mode-map (kbd "C-c f") 'hydra-projectile-laravel-find/body)
(define-key projectile-laravel-mode-map (kbd "C-c j") 'hydra-projectile-laravel-generate/body)
(define-key projectile-laravel-mode-map (kbd "C-c g") 'hydra-projectile-laravel-goto/body)
(define-key projectile-laravel-mode-map (kbd "C-c r") 'hydra-projectile-laravel-run/body)