【问题标题】:Some beginner questions about how to port a CRUD application to PhalconPHP关于如何将 CRUD 应用程序移植到 PhalconPHP 的一些初学者问题
【发布时间】:2014-05-22 09:07:12
【问题描述】:

我刚开始使用 PhalconPHP 1.3.1 作为我研究硕士论文的应用程序。还没有完全开发,但我目前正在研究 CRUD,所以在有了一些功能和 UI 工作后,我决定开始介绍这个惊人的框架。在我开始这篇论文之前,我对 Web 开发、MVC 和 ORM 模式还是个新手。这也是我第一次使用模板引擎。现在我已经成功地移植了所有内容,但我担心我没有以正确的方式进行移植。我开始将我的代码添加到使用开发工具创建的 PhalconPHP 引导程序中。现在我从问题开始:

1º- 作为一个网络应用程序,将来我将使用 Phonegapp 进行包装,我使用 AJAX 加载功能,每次 id = "content" 更改时都不会加载所有菜单和库。为此,我使用 $('#content').load();用于更改 URL 的 content 和 historyjs 函数。除了在 Nginx 上将干净的 URL 配置为

之外,我没有对原始代码进行任何更改
try_files $uri $uri/ /index.php?_url=$uri&$args;

在文档中显示了使用 AJAX 的不同方式,所以恐怕我不应该使用这种方式,以某种方式破坏 MVC 模式。

2º-与此相关,我在 AJAX 动态加载 URL 中添加了一个变量 ?header=yes,表示我只加载内容。因此,在每个控制器中,我都会在 indexActions 中这样做:

$header = filterinput(INPUTGET, 'header');

$this->view->setVar("header",$header);

在我用 volt 检查变量之后。这是正确的方法吗?我想用伏特做所有事情,但我还没有找到方法。

3º-另外,因为菜单对每个页面都是通用的,所以在主 index.volt(在文件夹视图中)我根据变量包含菜单。也可以吗?还是应该将其移至不同的视图?

4º-因为 1º,我制作了自己的点击功能,在其中推送新 URL 并加载内容,我再次担心我正在破坏 Phalcon 的良好做法。

5º-JS/HTML 部分现在是纯代码,我只是将 PHP 部分替换为 volt 语法。我应该替换像

这样的代码吗
<link href="../css/stylefile.css" rel="stylesheet"/>

对于它的伏特语法?

如果需要如何更改,我希望您澄清我并提出建议。

【问题讨论】:

    标签: php html ajax nginx phalcon


    【解决方案1】:

    我目前正在将 Phalcon 和 volt 用于商业项目,我一直在寻找新的方法来做事,你必须真正尝试不同的方法,看看它是否能满足你的需要。如果您希望在具有相同数据的多个设备上工作,我会查看 phalcon micro 版本并将其用作休息 api,然后创建另一个使用 phalcon mvc 版本进行客户端渲染的项目,然后使用 ajax 获取来自您 phalcon 微型项目的数据。这样,如果您使用原生移动设备、台式机、电视、平板电脑,无论您需要什么,都无需重写代码,您只需要创建一个新的前端即可。

    要研究的另一件事是部分,您可以在部分中分离出页眉、页脚和导航,并像这样调用它们:

    {{ partial("partials/layout/footer") }}
    

    您还想为您的 phalcon 微型项目创建一个适当的 rest api url 结构。如果您想获取所有用户,您可以执行/users 之类的操作,并通过 id 获取用户您可以执行 /users/1 这是非常基本的操作,因此我在下面的一篇很棒的文章中进行了复制,为您提供有关 rest api 的更多信息和良好的结构。

    你也可以像这样设置电压变量:

    $this->view->header = $header;
    

    然后这样称呼它:

    {{ header }}
    

    我希望这能给你一些想法,但只是尝试一下并阅读来自不同博客的一些文章以了解其他人在做什么,Phalcon 论坛和 IRC 频道也是获得帮助的好地方

    一些不错的文章和资源

    http://inmensosofa.blogspot.co.uk/2011/10/look-into-various-rest-apis.html http://docs.phalconphp.com/en/latest/reference/micro.html

    【讨论】:

    • 感谢您的信息,但对我的疑惑仍然没有太大帮助:
    • 起初我的应用不是原生的,是混合的。所以它是普通的 html/css/js 响应式(相同的 ui 代码)和几乎相同的代码,除了 phonegap 的 webview。细微的差异由客户端控制。
    • 关于部分我只是不使用它们,原因有两个,首先包含是最有效的,因为是预编译的,其次我计划最小化客户端代码(擦除空间和用于生产的 cmets)以便使用这与 phalcon 缓存一起,你必须用纯 HTML 来做。关于我已经知道的伏特变量。无论如何,我对 web 开发世界还是很陌生,所以我会用 phalcon 保存对本机应用程序的建议。我仍然没有玩过 ORM,所以一旦我到达那个点,我会坚持你关于 url 的建议。非常感谢;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-16
    • 1970-01-01
    • 2011-05-11
    • 2011-05-06
    相关资源
    最近更新 更多