Phoenix Framework 1.4版中的models文件夹在哪里?

时间:2019-02-12 22:35:07

标签: elixir phoenix-framework

Phoenix框架1.2中有一个models文件夹,但是在1.4版中吗?

在1.2版中,models目录位于app-> web中。检查整个文件夹结构模型后,文件夹不存在。

2 个答案:

答案 0 :(得分:1)

如果使用 "name": "WebUIFinal", "type": "project:application", "bundler": { "id": "webpack", "displayName": "Webpack" }, "build": { "options": { "server": "dev", "extractCss": "prod", "coverage": false } }, "platform": { "id": "aspnetcore", "displayName": "ASP.NET Core", "port": 8080, "hmr": false, "open": false, "output": "wwwroot/dist" }, "loader": { "id": "none", "displayName": "None" }, "transpiler": { "id": "typescript", "displayName": "TypeScript", "fileExtension": ".ts" }, "markupProcessor": { "id": "minimum", "displayName": "Minimal Minification", "fileExtension": ".html" }, "cssProcessor": { "id": "none", "displayName": "None", "fileExtension": ".css" }, "editor": { "id": "none", "displayName": "None" }, "unitTestRunner": [ { "id": "jest", "displayName": "Jest" } ], "integrationTestRunner": { "id": "protractor", "displayName": "Protractor" }, "paths": { "root": "src", "resources": "resources", "elements": "resources/elements", "attributes": "resources/attributes", "valueConverters": "resources/value-converters", "bindingBehaviors": "resources/binding-behaviors" }, "testFramework": { "id": "jasmine", "displayName": "Jasmine" } } ,您仍将获得旧的项目结构以及models文件夹。但是,自Phoenix 1.3.0发布以来,默认项目结构已更改。使用新命令WebUIFinal/ ├── wwwroot/ │ └── dist/ │ ├── index.html │ ├── 0.chunk.js │ ├── ... │ ├── vendor.bundle.js │ └── app.bundle.js ├── aurelia-project/ │ └── aurelia.json ├── src/ │ ├── app.ts │ └── main.ts ├── package.json └── webpack.config.js (plus a bunch of other stuff, of course -- this is just what I deemed relevant) ,我们可以看到不再有专用的模型文件夹。

在该版本中,Phoenix引入了上下文:专用模块,用于公开和分组相关功能。模型将不再进入单个模型文件夹,而是将根据其功能分为不同的上下文模块。

有关更多信息,请参见此处的1.3.0版本博客文章(“上下文”部分):https://phoenixframework.org/blog/phoenix-1-3-0-released

答案 1 :(得分:1)

1.2之后,Phoenix停止使用类似Rails的Public Sub ChangeSheetNames() Dim lLastRow As Long With Worksheets(1) lLastRow = .Cells(Rows.Count, 1).End(xlUp).Row For i = 1 To Worksheets.Count If .Cells(i, 1).Value <> "" Then Worksheets(i).Name = .Cells(i, 1).Value Next End With End Sub 语法和设计;相反,生成这些资源后,Phoenix现在将数据模型分为models和ORM函数分为schemas

Phoenix的目录结构也更改为> = 1.3;现在,您的主要应用程序模块都位于contexts中,./lib/中包含与Web和数据库无关的(方案,上下文)模块,而{{1中则包含面向Web的模块(控制器,视图等) }}。

如果您在项目中运行./lib/appname/,则生成器将生成./lib/appname_web/目录,其中包含名为mix phx.gen.context Accounts User users email:string username:string的文件,该文件包含您的用户./lib/appname/accounts/和{{1} }和名为/accounts/user.ex的文件,其中包含与用户架构相关的数据库CRUD逻辑。

在TGO的答案中查看更改日志,并在the official Phoenix docs about Contexts中查看有关Phoenix当前Context设计的更清晰图片