【发布时间】:2015-06-09 20:51:14
【问题描述】:
拥有一个在舞台和制作方面应该不同的用户列表:
user1:
name: username1
password: password1
email: email1
roles: role1, role2
user2:
name: username2
password: password2
email: email2
roles: role1, role2
user3:
name: username3
password: password3
email: email3
roles: role1, role2
user4:
name: username4
password: password4
email: email4
roles: role1, role2
user5:
name: username5
password: password5
email: email5
roles: role1, role2
我尝试将它们放入build.properties 文件中(我跳过了角色部分)
[user]
admins=username1|password1|email1,username2|password2|email2,username3|password3|email3,username4|password4|email4,username5|password5|email5
使用build.xml中的以下代码sn-p可以正常工作
<target name="createUsers">
<foreach list="${admins}" param="_userset" target="createUser" />
</target>
<target name="createUser">
<php expression="strpos('${_userset}', '|')" returnProperty="_pos1"/>
<php expression="strrpos('${_userset}', '|')" returnProperty="_pos2"/>
<php expression="${_pos2}-${_pos1}" returnProperty="_len"/>
<php expression="substr('${_userset}', 0, ${_pos1})" returnProperty="_username"/>
<php expression="substr('${_userset}', ${_pos1}+1, ${_len}-1)" returnProperty="_password"/>
<php expression="substr('${_userset}', ${_pos2}+1)" returnProperty="_email"/>
<SymfonyConsole console="${bin.symfony}" command="fos:user:create">
<arg value="${_username}" />
<arg value="${_email}" />
<arg value="${_password}" />
</SymfonyConsole>
</target>
但是build.properties文件中的部分非常不可读和不方便,而且添加新的值,如角色,也是一个列表,也很不方便。
拆分行不起作用,例如 java https://stackoverflow.com/a/8978515/590247:
[user]
admins=username1|password1|email1,\
username2|password2|email2,\
username3|password3|email3,\
username4|password4|email4,\
username5|password5|email5
有没有更好的方法来存储多维数据?
【问题讨论】:
标签: arrays multidimensional-array phing