use \{DateTimeImmutable, SplFileObject, ReflectionGenerator};
Что думаете по этому поводу?Я с маками не работал, так что не знаю как у вас там что, у меня сервера и рабочие станции на лине, но думаю, что отличия будут минимальны, так вот. В bash_profile настройки применяются к конкретному пользователю, поэтому я выношу переменные окружения оракл глобально (/etc/profile.d/oracle.sh) и уже там все указываю. Переменную TNS_ADMIN я вообще не использую. Определяю ORACLE_HOME (путь к установке клиента), в нем tns обычно помещаю по стандартному пути ($ORACLE_HOME/network/admin). Порой этого достаточно, если нет, то симлинк на файл tnsnames в /etc. Зачем выносить глобально? Рано или поздно вы столкнетесь (а может и нет), что в БД данные хранятся в одном виде/кодировке, а получать их надо в другом... Вот тут и начнется пляска с установкой NLS-параметров, а так как разные программы работают от разных пользователей (у nginx своей юзер, у apache свой, у какого-то кастомного микросервиса свой), то прописывать каждому из них одно и тоже не гуд... Можно запустить их работать всех от 1 пользователя, но это тоже так себе идейка...
Все вывелось. Правильно ли все я делаю?
коннект через sqlplus есть к БД?
tnsping name_from_tns
sqlplus username/password@name_from_tns
Если в ответе "Connected to: Oracle Database 11g Enterprise Edition Release and bla-bla-bla" то все ок, tns-ка работает исправно. cat /etc/profile.d/oracle.sh
> export ORACLE_HOME=/opt/oracle/instantclient_11_2
ls -l /etc/tnsnames.ora
> lrwxrwxrwx 1 root root 43 Jul 20 2016 /etc/tnsnames.ora -> /opt/oracle/instantclient_11_2/tnsnames.ora