Qqwy

Qqwy

TypeCheck Core Team

I am working on my first Phoenix project.

One thing I do not like right now, is that all models are prefixed with the project name. I can understand that this is nicer from a code-hierarcy perspective (less conflicting module names), but many of my files now look like this:

defmodule MyProject.Foo do
  alias MyProject.{Repo, Something, SomethingElse, YetAnotherModel, Bar, Baz, Qux, ...}
end

Is there a better way?

Showing Posts 1 to 10

dgamidov

dgamidov

As far as I understand, it is Elixir naming convention.
I have a lot of same alias App.{Repo, ..}, too :slight_smile:

dgamidov

dgamidov

@Qqwy, you can use schemaless queries :wink:

Qqwy

Qqwy OP

TypeCheck Core Team

One of the things I did not know, and thanks for @wojtekmach for pointing this out to me, is that the web/web.ex is a wonderful file where you can list things that all your models/views/controllers require(/import/use) in a single place.

This makes life already a lot easier. :smiley:

boddhisattva

boddhisattva

Hi @wojtekmach , the below links that you’ve shared in a previous post as part of this thread don’t seem to work anymore(I’m getting a page not found). If the path has changed to another location in the repo, can you please share the new link ?

Thank you.

boddhisattva

boddhisattva

@wojtekmach Thank you very much for your prompt response :slight_smile: . I have a user_profile API only Phoenix 1.3 app(have used options like --no-brunch, --no-html when creating the app via mix phx.new).

I wasn’t able to find functions like def schema within my entire project and also I have my the module names like defmodule UserProfileWeb instead of defmodule Hexpm.Web as per the above link that you’ve shared. I’d like to confirm will the def schema go within the defmodule UserProfileWeb module or do you think it should belong elsewhere ?

wojtekmach

wojtekmach

Hex Core Team

def schema in *Web module doesn’t come out of the box in Phoenix, but you should have similar def controller, def view etc somewhere - use the shared trick there.

boddhisattva

boddhisattva

Thank you @wojtekmach :slight_smile: . def controller, def view etc., are defined as part of defmodule UserProfileWeb, so will definitely add def schema there based on your inputs.

Also just curious, are things different in hex because it’s using an older version of phoenix or is there any other reason to why it’s named defmodule Hexpm.Web when compared to defmodule UserProfileWeb ?

wojtekmach

wojtekmach

Hex Core Team

Note that module names are completely arbitrary and there is little/nothing in either Elixir or Phoenix that dictates them, it’s just a matter of convention. It just happens so that at the time I converted to v1.3-like structure the convention in Phoenix release candidate was MyApp.Web, not MyAppWeb :slight_smile:

Where Next? Top

Trending in Questions Top

stjefim
Hello! Suppose you are building workflow (order / task / payment) processing system with the following requirements: Each workflow con...
New
Blokh
Hey guys, I’ve got a huge CSV ( around 10 GB ) that needs to be processed hourly Do you guys have any suggestions what is the best prac...
New
kszambelanczyk
Hello! Could someone please give me a help/sample code, how to delete a file from s3 using waffle/waffle_ecto from Phoenix app. I creat...
New
Onor.io
I have what I’ve heard referred to as a “lookup table” in my database. This is a way of assigning codes to common values. One common lo...
New
jaybe78
Hello, I’m developing a online persistent chat system (what’s app) like using elixir/dynamodb/aws for a mobile app(flutter). The diffic...
New
Trolleger
What approach to take when sending live updates to “random” users Hi! I have a question, I have a little chat app, and when I create a DM...
New
widianto
I think I’ve found a small improvement I could contribute to <%= web_namespace %>.CoreComponents (installer/templates/phx_web/compo...
New

Other Trending Topics Top

garrison
Hobbes is a low-level distributed database for the Elixir programming language. Hobbes provides a simple, safe, and scalable storage lay...
New
mcass19
ExRatatui lets you cook up rich terminal UIs in Elixir, powered by Rust’s ratatui via Rustler NIFs. Build interactive terminal applicatio...
New
Damirados
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge & Solve. They are GUI (Emerge) and State management (S...
New
netoum
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
wintermeyer
There are three potential reasons for members of this forum to have a look at https://vutuv.de You are tired or annoyed of LinkedIn. Yo...
New
webofbits
Aludel - LLM Evaluation Workbench Aludel is an embeddable Phoenix LiveView dashboard for evaluating and comparing LLM prompts across mult...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews