{"id":30780421,"url":"https://github.com/dyatlovk/symfony-nvim","last_synced_at":"2026-04-12T11:49:04.529Z","repository":{"id":311036421,"uuid":"1042220900","full_name":"dyatlovk/symfony-nvim","owner":"dyatlovk","description":"Neovim symfony plugin","archived":false,"fork":false,"pushed_at":"2025-09-01T01:20:16.000Z","size":62,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-12T11:48:22.527Z","etag":null,"topics":["lua","neovim","neovim-lua-plugin","neovim-plugin","symfony","symfony-neovim"],"latest_commit_sha":null,"homepage":"","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dyatlovk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-08-21T17:08:38.000Z","updated_at":"2025-09-01T01:20:19.000Z","dependencies_parsed_at":"2025-08-21T20:01:18.019Z","dependency_job_id":"8738a736-5e87-4bbb-9cae-7bbc75e5d08a","html_url":"https://github.com/dyatlovk/symfony-nvim","commit_stats":null,"previous_names":["dyatlovk/symfony-nvim"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dyatlovk/symfony-nvim","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dyatlovk%2Fsymfony-nvim","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dyatlovk%2Fsymfony-nvim/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dyatlovk%2Fsymfony-nvim/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dyatlovk%2Fsymfony-nvim/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dyatlovk","download_url":"https://codeload.github.com/dyatlovk/symfony-nvim/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dyatlovk%2Fsymfony-nvim/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31713876,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-12T06:22:27.080Z","status":"ssl_error","status_checked_at":"2026-04-12T06:21:52.710Z","response_time":58,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["lua","neovim","neovim-lua-plugin","neovim-plugin","symfony","symfony-neovim"],"created_at":"2025-09-05T07:45:12.604Z","updated_at":"2026-04-12T11:49:04.524Z","avatar_url":"https://github.com/dyatlovk.png","language":"Lua","funding_links":[],"categories":[],"sub_categories":[],"readme":"# symfony.nvim\n\nA Neovim plugin for enhanced Symfony (PHP framework) development. It provides interactive access to Symfony console commands, routes, and service container information, with Docker support.\n\n\n## Demo\n\nhttps://github.com/user-attachments/assets/ae1c28e7-f46e-4666-b2b7-6bce8f18c886\n\n\n## Features\n\n- List and run Symfony console commands from within Neovim\n- View and search Symfony routes and controllers\n- Inspect service container services and parameters\n- Docker integration: run commands inside a specified container\n- Symfony icon support via [nvim-web-devicons](https://github.com/nvim-tree/nvim-web-devicons)\n\n\n## Installation\n\nUse your favorite Neovim plugin manager. For example, with [lazy.nvim](https://github.com/folke/lazy.nvim):\n\n```lua\n{\n  'dyatlovk/symfony-nvim',\n  dependencies = {\n    'nvim-lua/plenary.nvim',\n    'nvim-tree/nvim-web-devicons',\n  },\n}\n```\n\n\nOr with [packer.nvim](https://github.com/wbthomason/packer.nvim):\n\n```lua\nuse {\n  'dyatlovk/symfony-nvim',\n  requires = {\n    'nvim-lua/plenary.nvim',\n    'nvim-tree/nvim-web-devicons',\n  }\n}\n```\n\n\n## Configuration\n\nBasic setup (add to your Neovim config):\n\n```lua\nlocal root = vim.fn.getcwd()\nlocal symfony = require('symfony')\nsymfony.setup({\n  docker_container = 'your_container_name',\n  mapping = {\n    { \"/var/www/\", root },\n  },\n  php = \"/usr/bin/php\",\n  bin = \"bin/console\",\n})\nsymfony.init()\n```\n\nSetup watcher if you'd like to automatically refresh all data when src changes\n```lua\n-- Watch for changes in config and src directories.\n-- The plugin will automatically update routes, containers, etc. when changes are detected.\nlocal watcher = require('symfony.watcher')\nwatcher.watch({root .. \"/config/\", root .. \"/src\"})\n```\n\nOr you can bind for manual refresh\n\n```lua\nvim.keymap.set(\"n\", \"\u003cleader\u003er\", function() require(\"symfony\").refresh()end, { desc = \"Symfony refresh\" })\nvim.keymap.set(\"n\", \"\u003cleader\u003erc\", function() require(\"symfony.containers\").refresh() end, { desc = \"Symfony containers refresh\" })\nvim.keymap.set(\"n\", \"\u003cleader\u003err\", function() require(\"symfony.routers\").refresh() end, { desc = \"Symfony routers refrehs\" })\nvim.keymap.set(\"n\", \"\u003cleader\u003ero\", function() require(\"symfony.commands\").refresh() end, { desc = \"Symfony commands refresh\" })\nvim.keymap.set(\"n\", \"\u003cleader\u003erp\", function() require(\"symfony.params\").refresh() end, { desc = \"Symfony params refresh\" })\n```\n\n\n## How it works\n\nAll data is collected via Symfony console commands and stored in global variables during runtime.\nWhen the watcher detects changes in source files, the plugin automatically refreshes the data and updates the global variables.\n\n\n## API examples\n\nRefresh data\n```lua\nlocal symfony = require('symfony')\nlocal routers = require('symfony.routers')\nlocal containers = require('symfony.containers')\nlocal commands = require('symfony.commands')\nlocal params = require('symfony.params')\n\n-- Manual Refresh\ncommands.refresh()\nrouters.refresh()\ncontainers.refresh()\nparams.refresh()\n```\n\nGet all dump\n```lua\nlocal cnt = require('symfony.containers')\n--- @type table\u003cstring, any\u003e\nlocal list = ctn.get_list()\n```\n\nSearch\n```lua\nlocal params = require('symfony.params')\n--- @type table\nlocal list = params.filter_by_name(\"kernel\")\n\n--- @type table|nil\nlocal param = params.find_one_by_name(\"kernel.bild_dir\")\n```\n\n## Dependencies\n\n- [nvim-lua/plenary.nvim](https://github.com/nvim-lua/plenary.nvim)\n- [nvim-tree/nvim-web-devicons](https://github.com/nvim-tree/nvim-web-devicons)\n\n## License\n\nThis project is licensed under the MIT License. See the [LICENSE](./LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdyatlovk%2Fsymfony-nvim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdyatlovk%2Fsymfony-nvim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdyatlovk%2Fsymfony-nvim/lists"}