При загрузки странице по нежному адресе, идёт загрузка пользователей из Active Directory. Если взять класс
Sprav и разместить его вместе с вьюхой (
подразумеваю что весь код в 1 файле и доступ к нему получаю по адресу localhost.dev/sprav.php), то выгрузятся все юзеры и никаких проблем нет. Если же разбираю код на MVC то при переходите на страницу со списком юзеров, страница начинает грузится постоянно и выкидывая ошибку о не известном индексе массива(все ключи(индекса) массива есть!) полученного из AD.
И далее нон-стоп крутит данные
$dataКласс модели (Sprav.php):class Sprav {
public static function getUserLdap() {
$ldapUser = "USER@DOMAIN";
$ldapPass = "PASSWoRD";
$ldapHost = "DOMAIN";
$ldapPort = '389';
$dn = "OU=MAIN,DC=LOCAL,DC=DOMAIN,DC=RU";
$filter="(&(primaryGroupID=513))";
$justthese = array("ou", "sn", "givenname","department", "samaccountname", "mail","ipphone","mobile","title","useraccountcontrol","company");
$connect = ldap_connect($ldapHost, $ldapPort);
ldap_set_option($connect, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($connect, LDAP_OPT_REFERRALS, 0);
$data = [];
if ($connect) {
$bind = ldap_bind($connect,$ldapUser,$ldapPass);
if ($bind) {
$result = ldap_search($connect,$dn,$filter,$justthese);
$data = ldap_get_entries($connect,$result);
} else {
echo "LDAP-Авторизация не удалась...<br>";
}
} else {
echo "LDAP-соединение не удалась...<br>";
}
$users = [];
for ($i = 0; count($data) > $i; $i++) {
$users[$i]['lastname'] = $data[$i]['sn'][0];
$users[$i]['name'] = $data[$i]['givenname'][0];
$users[$i]['department'] = $data[$i]['department'][0];
$users[$i]['login'] = $data[$i]['samaccountname'][0];
$users[$i]['mail'] = $data[$i]['mail'][0];
$users[$i]['extension'] = $data[$i]['ipphone'][0];
$users[$i]['mobile'] = $data[$i]['mobile'][0];
$users[$i]['post'] = $data[$i]['title'][0];
$users[$i]['code'] = $data[$i]['useraccountcontrol'][0];
$users[$i]['company'] = $data[$i]['company'][0];
}
return $users;
}
}
Контроллер (SpravController):require_once(ROOT.'/model/Sprav.php');
class SpravController
{
public function actionView() {
$user = Sprav::getUserLdap();
require_once(ROOT.'/view/sprav.php');
return true;
}
}
Код шаблона(/view/sprav.php):<? for($i=0; count($user) > $i; $i++): ?>
<tr>
<td><?= $i; ?>/<?= $user[$i]['code']; ?></td>
<td><?= $user[$i]['lastname']; ?></td>
<td><?= $user[$i]['name']; ?></td>
<td><?= $user[$i]['company']; ?></td>
<td><?= $user[$i]['department']; ?></td>
<td><?= $user[$i]['post']; ?></td>
<td><?= $user[$i]['extension']; ?></td>
<td><?= $user[$i]['mobile']; ?></td>
<td><?= $user[$i]['mail']; ?></td>
</tr>
<? endfor; ?>
$dataarray (size=51)
'count' => int 50
0 =>
array (size=22)
'sn' =>
array (size=2)
'count' => int 1
0 => string 'Фамилия' (length=12)
0 => string 'sn' (length=2)
'title' =>
array (size=2)
'count' => int 1
0 => string 'Менеджер по продажам' (length=38)
1 => string 'title' (length=5)
'givenname' =>
array (size=2)
'count' => int 1
0 => string 'Имя юзера' (length=14)
2 => string 'givenname' (length=9)
'department' =>
array (size=2)
'count' => int 1
0 => string 'Продажи' (length=14)
3 => string 'department' (length=10)
'company' =>
array (size=2)
'count' => int 1
0 => string 'Название Компании' (length=27)
4 => string 'company' (length=7)
'useraccountcontrol' =>
array (size=2)
'count' => int 1
0 => string '512' (length=3)
5 => string 'useraccountcontrol' (length=18)
'samaccountname' =>
array (size=2)
'count' => int 1
0 => string 'В транслите' (length=8)
6 => string 'samaccountname' (length=14)
'ipphone' =>
array (size=2)
'count' => int 1
0 => string '110' (length=3)
7 => string 'ipphone' (length=7)
'mail' =>
array (size=2)
'count' => int 1
0 => string 'mail@mail.ru' (length=18)
8 => string 'mail' (length=4)
'mobile' =>
array (size=2)
'count' => int 1
0 => string '+7 777 777 88 99' (length=18)
9 => string 'mobile' (length=6)
'count' => int 10
'dn' => string 'dn-path' (length=76)