Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I personally would prefer something like:

    defmodule MyApp.Web.Router do
      use MyApp.Router
    end
over

    defmodule MyApp.Web.Router do
      use MyApp, :router
    end
but that’s a preference.


You can do that if you want. Just remove `def router` from `MyAppWeb` move its contents over to a custom module:

    defmodule MyAppWeb.Router do
      defmacro __using__(_) do
        quote do
          use Phoenix.Router, helpers: false

          import Plug.Conn
          import Phoenix.Controller
          import Phoenix.LiveView.Router
        end
      end
    end
But why the dislike for passing a second argument to `use`? It keeps everything together pretty nicely.


Mostly because we’re using an umbrella at the place of work, and we absolutely don’t want those boundaries crossed.


Oh! Well I don't know your setup but you could always add a top level `PhoenixHelpers` namespace (or a better name) that holds these generic types of things that can be shared between apps. Though again I really don't know your set up. Like maybe you have an app whose router doesn't need `Phoenix.Controller` so then this wouldn't make sense.




Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: