與symfony2許可權相關的語句在官方文件上不是很全,每次要用到時查詢起來十分費勁,所以在這裡列出與symfony2許可權相關的語句,以備查:
/*** 生成securityidentity
*///基於使用者生成securityidentity
$securityidentity
= usersecurityidentity::fromaccount(
$user
); //基於角色生成securityidentity
$securityidentity
= new
rolesecurityidentity(
$role
->getrole());
/*** 生成objectidentity
*///基於物件生成objectidentity
$objectidentity
= objectidentity::fromdomainobject(
$comment
);
//基於類生成objectidentity
$objectidentity
= new
objectidentity(
'some_identifier'
, 'class\fqcn'
); /**
* 生成acl
*/$acl
= $aclprovider
->createacl(
$objectidentity
); //插入ace(基於物件)
$acl
->insertobjectace(
$securityidentity
, maskbuilder::mask_owner);
//插入ace(基於類)
$acl
->insertclassace(
$securityidentity
, maskbuilder::mask_create);
$aclprovider
->updateacl(
$acl
); /**
* 判斷許可權
*/$securitycontext
= $this
->get(
'security.context'
); $securitycontext
->isgranted(
'create'
, $classidentity
);
// 返回真
$securitycontext
->isgranted(
'view'
, $classidentity
);
// 返回真
$securitycontext
->isgranted(
'delete'
, $classidentity
);
// 返回假
/***ace的增刪改查
*///插入基於物件的ace
$acl
->insertobjectace(securityidentityinte***ce
$sid
, $mask
, $index
= 0,
$granting
= true,
$strategy
= null)
;//插入基於物件欄位的ace
$acl
->insertobjectfieldace(
$field
, securityidentityinte***ce
$sid
, $mask
, $index
= 0,
$granting
= true,
$strategy
= null)
;//插入基於類的ace
$acl
->insertclassace(securityidentityinte***ce
$sid
, $mask
, $index
= 0,
$granting
= true,
$strategy
= null)
;//插入基於類字段的ace
$acl
->insertclassfieldace(
$field
, securityidentityinte***ce
$sid
, $mask
, $index
= 0,
$granting
= true,
$strategy
= null)
;//刪除ace
$acl
->deleteobjectace(
$index) ;
$acl
->deleteobjectfieldace(
$index
, $field
); $acl
->deleteclassace(
$index
) ;$acl
->deleteclassfieldace(
$index
, $field
); //更新ace
$acl
->updateobjectace(
$index
, $mask
, $strategy
= null)
;$acl
->updateobjectfieldace(
$index
, $field
, $mask
, $strategy
= null)
;$acl
->updateclassace(
$index
, $mask
, $strategy
= null) ;
$acl
->updateclassfieldace(
$index
, $field
, $mask
, $strategy
= null)
;//得到ace
$acl
->getobjectaces() ;
$acl
->getobjectfieldaces(
$field) ;
$acl
->getclassaces() ;
$acl
->getclassfieldaces(
$field) ;
Symfony2函式使用
1.呼叫其他物件的方法。例 grobal func this container get global func global func 函式所在的檔名 lot data global func getdatafromfile parm1 getdatafromfile函式名 2.資料庫的預備查詢 ...
symfony2 學習筆記
1 建立entities 儲存的 string 型別 使用 datetime控制項編輯 transformer string to date builder add starttime datetime builder get starttime addmodeltransformer new ca...
安裝symfony2 如此簡單!
2 安裝composer時選擇php.exe的路徑,我用的是xampp,所以路徑為c xampp php。安裝好cmd下執行composer 看看是否成功了 3 在頁面上有composer安裝symfony的命令列,拷貝下來 我安裝的是2.3 命令為 composer create project ...