小编Max*_*Max的帖子

PHP中的特征 - 任何现实世界的例子/最佳实践?

特性是PHP 5.4的最大增加之一.我知道语法并理解特征背后的想法,比如日志,安全性,缓存等常见内容的水平代码重用.

但是,我仍然不知道如何在我的项目中使用特征.

是否有任何已经使用特征的开源项目?关于如何使用特征构建体系结构的任何好文章/阅读材料?

php traits

146
推荐指数
4
解决办法
5万
查看次数

资产的命名约定(图像,css,js)?

我仍在努力为我的网络项目中使用的图像,js和css文件等资产找到一个好的命名约定.

所以,我目前的情况是:

CSS: style-{name}.css
例子:style-main.css,style-no_flash.css,style-print.css等.

JS: script-{name}.js
例子:script-main.js,script-nav.js

图像: {imageType}-{name}.{imageExtension}
{imageType}是这些中的任何一个

  • 图标(例如帮助内容的问号图标)
  • img(例如通过<img />元素插入的标题图像)
  • 按钮(例如图形提交按钮)
  • bg(图像用作css中的背景图像)
  • 精灵(图像在css中用作背景图像,包​​含多个"版本")

例如,名称是:icon-help.gif,img-logo.gif,sprite-main_headlines.jpg,bg-gradient.gif等.

那么,您的想法是什么您的命名惯例是什么?

naming-conventions

76
推荐指数
8
解决办法
6万
查看次数

将int转换为二进制的简单快捷方法?

我正在寻找的是像decbinC#中的PHP 函数.该函数将小数转换为字符串表示形式.

例如,使用decbin(21)它时返回10101结果.

我发现这个功能基本上可以实现我想要的功能,但也许有更好/更快的方式?

c#

61
推荐指数
4
解决办法
9万
查看次数

将逗号分隔的int字符串转换为int数组

我只找到了一种相反的方法:从int列表或数组创建一个逗号分隔的字符串,但不是如何将输入转换string str = "1,2,3,4,5";为数组或int列表.

这是我的实现(灵感来自Eric Lippert这篇文章):

    public static IEnumerable<int> StringToIntList(string str)
    {
        if (String.IsNullOrEmpty(str))
        {
            yield break;
        }

        var chunks = str.Split(',').AsEnumerable();

        using (var rator = chunks.GetEnumerator())
        {
            while (rator.MoveNext())
            {
                int i = 0;

                if (Int32.TryParse(rator.Current, out i))
                {
                    yield return i;
                }
                else
                {
                    continue;
                }
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

你认为这是一个好方法还是更简单,甚至可能是内置方式?

编辑:对不起任何混乱,但该方法需要处理等无效的输入"1,2,,,3""###, 5,"通过跳过它等等.

c#

54
推荐指数
6
解决办法
9万
查看次数

从NHibernate二级缓存中删除对象

我刚开始考虑在我的一个应用程序中使用NHibernate二级缓存.我可能会使用NHibernate.Caches.SysCache.SysCacheProvider依赖于ASP.net缓存的.

启用缓存不是问题,但我想知道如何管理缓存,例如以编程方式从缓存中删除某些实体等.

我的应用程序是某种图像数据库.用户通过后端上传图像,并可以通过访问在前端查看图像/ImageDb/Show?userId=someUserId

数据不会经常变化.如果它发生变化,用户在后端的名为"清除我的缓存"的按钮无关紧要,该按钮会从缓存中删除此用户的缓存对象.

我在网上找到了一个可以从nhibernates二级缓存中删除所有缓存对象的解决方案.但这对我来说有点太暴力了......我不想为几十个用户清除整个缓存,因为一个用户试图清除缓存中的自己的数据.

所以我基本上想做的是:有选择地从C#中的nhibernates二级缓存中删除缓存的db对象.

这可能吗?我想这也取决于缓存提供商.如果ASP.net缓存提供程序无法做到这一点,我可以使用其他内置/开源建议.

nhibernate caching isession second-level-cache

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

函数内部的函数声明 - 为什么?

我正在阅读"C语言编程"一书,并在第10章中找到了这样一个例子:

#include <stdio.h>

void test (int  *int_pointer)
{
     *int_pointer = 100;
}

int main (void)
{
     void test (int  *int_pointer);
     int  i = 50, *p = &i;

     printf ("Before the call to test i = %i\n", i);

     test (p);
     printf ("After the call to test i = %i\n", i);

     return 0;
}
Run Code Online (Sandbox Code Playgroud)

我理解这个例子,但我不明白其中void test (int *int_pointer);的内容main.为什么我要test再次定义签名?这是惯用的C吗?

c function

23
推荐指数
4
解决办法
3452
查看次数

git设置在同一台服务器上的多个repos

可能是一个简单的问题,但我在这里不知所措......

在github中,可以为每个存储库添加部署密钥,该部署密钥仅提供对该单个存储库的访问.

但是对于一个客户端,我在同一台服务器上使用git管理了两个项目(项目A和项目B).如果我使用项目A的公钥,github告诉我,我不能将它用作项目B的部署密钥,反之亦然.

如何创建另一个公钥并设置git以使用项目A的一个键和项目B的另一个键?

git ssh github public-key

20
推荐指数
2
解决办法
7020
查看次数

关于使用db4o的一些问题

我正在尝试db4o对象数据库,到目前为止我非常喜欢我所看到的,但我也读过这篇关于stackoverflow db4o体验的帖子表明并非一切看起来如此简单都很容易.

现在,我对如何在现实世界的应用程序中使用db4o有一些疑问.因此,如果您有使用db4o工作的经验(特别是在Web应用程序上下文中),我很乐意听到它们.

这是我的问题:

  1. 在使用db4o存储对象时,如何管理对象标识?**
    来自RDBMS背景,您通常每个表都有一个主键/标识列,我现在无法想象如何在db4o中管理对象标识.

    例如,如果我正在使用NHibernate/mysql并且需要通过id查找User对象,我会执行session.Load(primaryKey)并且它将被其PK检索.在表定义中将PK定义为自动增量也是很常见的.

  2. 由于db4o中没有这样的选项,我的想法是使用Guid结构来识别对象数据库中的一些对象.

  3. 有哪些工具可以在db中查看存储的对象?

    在db4o世界中是否存在类似SQL Server Management Studio(可能不太复杂)的东西?我想查看db文件中已存储的数据/对象.

  4. 重命名域对象时,你搞砸了吗?

    据我所知,当您重命名一个类时,无法再检索数据库中以前存储的任何实例.有办法解决这个问题吗?如何处理已包含许多对象的实时数据库的更新?

  5. 我可以将属性排除在保存到数据库之外吗?

    例如,如果一个域对象持有对(无状态)服务对象的引用,那么如果域对象被持久化,服务对象也将被持久化,对吧?

在数据库中保存服务实例似乎有点奇怪,至少对我而言.

你可以排除服务实例被保存吗?如果再次检索域对象,我如何确保该服务也再次注入实例?

.net db4o

18
推荐指数
1
解决办法
2141
查看次数

将facebook like button与动态加载的内容集成在一起

我正在处理的网站包含一个通过AJAX动态加载的项目列表.向下滚动页面时,会加载更多项目.

现在,我的客户想要为这些项目添加一个类似Facebook的按钮(以及喜欢这个的人数).

集成默认类似按钮没有问题,但如何将类似按钮添加到通过AJAX加载的项目?如果加载了一个新项目,Facebook API如何知道DOM树中有一个新的类似按钮需要获取有多少人喜欢这个的计数?

谁有经验如何做到这一点?有可用的例子吗?我的搜索没有找到任何有用的东西,除了集成标准之类的按钮.

ajax facebook facebook-like

17
推荐指数
3
解决办法
2万
查看次数

结构中的char数组 - 为什么strlen()在这里返回正确的值?

我有一个这样的简单程序:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct 
{
    int numberOfDays;
    char name[10];
} Month;


int main(void) 
{
    const Month months[12] = { 
        { 31, {'J', 'a', 'n'} },
        { 28, {'F', 'e', 'b'} }
    };

    printf("%zu\n", strlen(months[0].name));
    printf("%zu\n", sizeof(months[0].name));

    printf("%zu\n", strlen(months[1].name));
    printf("%zu\n", sizeof(months[1].name));

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出是这样的:

3
10
3
10
Run Code Online (Sandbox Code Playgroud)

我理解为什么sizeof(months[i].name)打印10,但为什么strlen在这种情况下返回正确的值?

我的想法是,strlen直到第一个'\0',但char name[3]数组不是空终止.从我的理解,这应该是未定义的行为?它只是偶然工作吗?

我想知道上面的months[12]数组中的内存布局是什么.

c initialization

17
推荐指数
2
解决办法
1672
查看次数