小编BDu*_*elz的帖子

PHP:真实世界的OOP示例

我正在努力学习OOP.我正在阅读的书中所谓的"现实世界"例子并没有帮助.

所有的例子一样Pet,Car,Human不能帮助我了.我需要真实的生活例子,如注册,用户个人资料页面等.

一个例子:

$user->userName = $_POST['userName'];//save username
$user->password = $_POST['password'];//save password
$user->saveUser();//insert in database
Run Code Online (Sandbox Code Playgroud)

我也看到了:

$user->user = (array) $_POST;
Run Code Online (Sandbox Code Playgroud)

其中:

private $user = array();
Run Code Online (Sandbox Code Playgroud)

保存数组中的所有信息.

在同一个班级里面

$user->getUser($uid);
// which sets the $this->user array equal to mysqli_fetch_assoc() using 
//the user id.
Run Code Online (Sandbox Code Playgroud)

有没有在许多不同的php应用程序(注册,登录,用户帐户等)中实现OOP的真实世界示例?

php oop

46
推荐指数
2
解决办法
5万
查看次数

MVC控制器的一个示例

我一直在阅读很多关于如何以及为什么在应用程序中使用MVC方法的内容.我已经看到并理解了一个模型的例子,我已经看到并理解了View的例子....但我仍然在控制器上有点模糊.我真的很想看到一个完整的控制器示例.(如果可能,使用PHP,但任何语言都会有帮助)

谢谢.

PS:如果我能看到一个index.php页面的例子,它会决定使用哪个控制器以及如何使用它.

编辑:我知道控制器的工作是什么,我只是不知道如何在OOP中实现这一点.

php model-view-controller

39
推荐指数
1
解决办法
7万
查看次数

查找表有多重要?

我编写的很多应用程序都使用了查找表,因为这就是我教授的方式(规范化等).问题是由于这个原因,我所做的查询通常更复杂.它们通常看起来像这样

获取所有仍处于打开状态的帖子

"SELECT * FROM posts WHERE status_id = (SELECT id FROM statuses WHERE name = 'open')"
Run Code Online (Sandbox Code Playgroud)

通常,查找表本身非常短.例如,可能只有3种左右的不同状态.在这种情况下,是否可以通过在应用程序中使用常量来搜索某种类型?就像是

获取所有仍处于打开状态的帖子

"SELECT * FROM posts WHERE status_id = ".Status::OPEN
Run Code Online (Sandbox Code Playgroud)

或者,如果不是使用外来ID,我将其设置为枚举并查询它?

谢谢.

mysql sql database-design

22
推荐指数
1
解决办法
2万
查看次数

寻找一个良好的数据库结构来实现Facebook/SO之类的通知

我希望能够在我的网站上收到通知,类似于SO的方式.我已经找到了一个很好的表结构来做到这一点,但我似乎无法弄明白.

我在想这样的事情.

通知

id,notification_type_id,user_id,type_id

通知类型

id, notification_text

如果通知类型与新帖子,新评论或我稍后添加的任何功能相关...用户ID将与通知所针对的人有关.Type_id和通知类型将齐头并进,因此如果notification_type是新注释,则type_id将是要转到的comment_id.

这对我来说似乎很好,但我希望能够在发生变化时通知所有用户..就像在Facebook上发表评论时,你会得到一个通知,其他人也在你之后评论了同样的事情.

我似乎无法弄明白......帮助想要

谢谢

编辑:我想到的方式是,notification_type_id将映射到notification_type表,该表将保存每个通知的文本("你有一个新的评论","等等等等等等也评论等等等等"等等) .),type_id将映射到注释所关注的primary_id.例如,如果通知说你的帖子有新的评论,那么type_id将是帖子的主要ID,以便于链接.. IDK,这只是一个想法.

php mysql notifications

14
推荐指数
2
解决办法
9234
查看次数

使用JQuery选择"this"的父元素(单击元素)

我有一个jQuery脚本,它创建一个轮播来在用户点击时左右旋转图像.起初,我并没有计划在一个页面上放置多个旋转木马,但现在已经到了需要.

问题是,当用户点击按钮时,我不知道如何引用一个轮播(单击一个).

继承剧本

$(function()
{
    // Put last item before first item, in case user clicks left
    $('.carousel li:first').before($('.carousel li:last'));

    // Right click handler
    $('.right-button img').click(function()
    {
        // Get width plus margins
        var item_width = $('.carousel li').outerWidth() + (2 * parseInt($('.carousel li').css('margin-right')));

        // Get left indent
        var orig_left_indent = $('.carousel').css('left');

        // Calculate new left indent
        var left_indent = parseInt(orig_left_indent) - item_width;

        $('.carousel:not(:animated)').animate({'left': left_indent}, 500, 'swing', function()
        {
            // Put first item after last item
            $('.carousel li:last').after($('.carousel li:first'));

            // Set left …
Run Code Online (Sandbox Code Playgroud)

jquery-selectors

13
推荐指数
1
解决办法
6万
查看次数

如何在金字塔中使用常见的ini配置(开发和生产之间)?

我希望有一个通用配置,其设置不会在不同的环境(开发和生产)中发生变化.我知道我可以设置一个全局的settings.py文件(例如,sql限制),但据我所知,金字塔需要在启动时在ini文件中找到某些设置(例如,模板目录路径).

我可以,如果是这样,我如何在金字塔中做到这一点?

python configuration pyramid

9
推荐指数
1
解决办法
1408
查看次数

使用PHP创建html模板

我通过浏览和研究现有框架来了解MVC框架的工作原理.似乎我看到的每个框架都有一个布局,每个控制器中的每个方法都有自己的模板文件.所以会有一个登录模板,一个注销模板,一个寄存器,等等.

我的问题是,如何以及为什么要在一个文件中为整个页面创建模板.假设您想在多个页面上显示登录表单,是否需要为要在其上显示的每个模板创建登录表单?这不违反不重复自己的规则(DRY)吗?

到目前为止,我一直在做的事情是,我一直在创建liitle模板块,然后将它们组合起来创建每个页面.所以不要做这样的事情,

$title = 'Blah Blah Blah';
$user  = 'Jon Miller';

include 'index.phtml';

<html>
  <head>
    <title><?php echo $title; ?></title>
  </head>
  <body>
    <h3><?php echo $user; ?></h3>
    <form>login form</form>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

我一直这样做

$title = 'Blah Blah Blah';

include 'header.phtml';

$user  = 'Jon Miller';

include 'user.phtml';
include 'login_form.phtml';
include 'footer.phtml';

header.phtml
<html>
  <head>
    <title><?php echo $title; ?></title>
  </head>
  <body>

user.phtml
    <h3><?php echo $user; ?></h3>

login_form.phtml
    <form>login form</form>

footer.phtml
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

总而言之,我只想知道正确的方法,以及如何以及为什么......这似乎违反了DRY规则.

谢谢

html php templates dry

7
推荐指数
1
解决办法
6779
查看次数

如何在同一行中选择多个字段?(MySQL的)

昨天问了一个关于使用MySQL来计算调查结果的问题.

现在我的问题是,如果我有一个调查问题表,一个调查选择表和一个用户对这些调查问题的答案表,我将如何在同一查询中选择调查问题以及该调查的所有选项?

问题表

question_id (int)
question (text)
Run Code Online (Sandbox Code Playgroud)

选择表

choice_id (int)
question_id (int)
choice_text (varchar)
Run Code Online (Sandbox Code Playgroud)

答案表

answer_id (int)
question_id (int)
choice_id (int)
Run Code Online (Sandbox Code Playgroud)

我应该做什么SELECT才能在同一个查询中获得调查问题以及该调查的所有选择(已知或未知数量)?(如果可能的话,也可以在同一个查询中找到我的其他问题中的数学运算)

我不是那么先进的MySQL.

谢谢

编辑: 对不起,我的意思是,我正在尝试获取一个SELECT语句来选择问题,以及与该问题相对应的所有选项,在一行中.

如果我做的事情

SELECT question_id, question, choice_id, choice_text FROM questions LEFT JOIN choices USING(question_id)
Run Code Online (Sandbox Code Playgroud)

我得到多行,每个choice_id一行.

结果应该是这样的

question     choice_1  choice_2  choice_3
A or B or C     A          B        C
Run Code Online (Sandbox Code Playgroud)

数学部分将结果统计到调查中,是的,如果有帮助,choice_id是PK.

php mysql select

7
推荐指数
1
解决办法
1万
查看次数

如何组织控制器以获得最佳结构(MVC)

什么是组织控制器的最佳方式.假设我有一个用户控制器和一个注册操作,我是否应该在我验证和处理数据的过程中执行process_registration操作,或者只是在注册操作本身内执行所有处理.我是否应对每个需要它的操作进行验证/处理操作(注册,进程注册等等)

我还注意到很多人都有模块和控制器,仅用于验证和处理信息,(我想将所有验证逻辑和规则保存在一个位置?)

我想我的问题是,事情需要分开多远?这个问题也适用于模型和视图.

php model-view-controller code-organization

6
推荐指数
1
解决办法
1290
查看次数

Celery试图连接到错误的经纪人

我有芹菜配置

BROKER_URL = 'redis://127.0.0.1:6379'
CELERY_RESULT_BACKEND = 'redis://127.0.0.1:6379'
Run Code Online (Sandbox Code Playgroud)

然而每当我运行celeryd时,我都会收到此错误

consumer: Cannot connect to amqp://guest@127.0.0.1:5672//: [Errno 111] Connection refused. Trying again in 2.00 seconds...
Run Code Online (Sandbox Code Playgroud)

为什么它没有连接到我设置的redis代理,运行btw?

python redis celery celeryd

6
推荐指数
1
解决办法
5731
查看次数