Сомнения на пути духовного роста. Как их преодолеть



отсутствуют следующие необходимые объекты монетизации: fb:app_id (1)

Создание веб-сайта, и я хочу добавить URL-адрес настраиваемого профиля для всех пользователей моего сайта (например, facebook).

На моем веб-сайте уже есть такая страница, как http://sitename.com/profile.php?id=100224232

Тем не менее, я хочу сделать зеркало для тех страниц, которые относятся к их имени пользователя. Например, если вы перейдете на страницу http://sitename.com/profile.php?id=100224232, он перенаправляет вам http://sitename.com/myprofile

Как мне это сделать с PHP и Apache?

Нет папок, нет index.php

Изменить: это всего лишь сводка.

0) Контекст

Я предполагаю, что нам нужны следующие URL-адреса:

1) .htaccess

Создайте файл.htaccess в корневой папке или обновите существующий файл:

Options + FollowSymLinks # Turn on the RewriteEngine RewriteEngine On # Rules RewriteCond %{ REQUEST_FILENAME } !- f RewriteCond %{ REQUEST_FILENAME } !- d RewriteRule ^(.*) $ / index . php

Что это делает?

Если запрос предназначен для реального каталога или файла (который существует на сервере), index.php не обслуживается, иначе каждый URL-адрес перенаправляется на index.php .

2) index.php

Теперь мы хотим знать, какое действие нужно вызвать, поэтому нам нужно прочитать URL-адрес:

// index.php // This is necessary when index.php is not in the root folder, but in some subfolder... // We compare $requestURL and $scriptName to remove the inappropriate values $requestURI = explode (‘/’, $_SERVER [‘ REQUEST_URI ’]); $scriptName = explode (‘/’, $_SERVER [‘ SCRIPT_NAME ’]); for ($i = 0 ; $i < sizeof ($scriptName ); $i ++) { if ($requestURI [ $i ] == $scriptName [ $i ]) { unset ($requestURI [ $i ]); } } $command = array_values ($requestURI );

С URL-адресом http://example.com/profile/19837 команда $ будет содержать:

$command = array ([ 0 ] => "profile" , [ 1 ] => 19837 , [ 2 ] => , )

Теперь нам нужно отправить URL-адреса. Мы добавляем это в index.php:

// index.php require_once ("profile.php" ); // We need this file switch ($command [ 0 ]) { case ‘ profile ’ : // We run the profile function from the profile.php file. profile ($command ([ 1 ]); break ; case ‘ myprofile ’ : // We run the myProfile function from the profile.php file. myProfile (); break ; default : // Wrong page ! You could also redirect to your custom 404 page. echo "404 Error: wrong page." ; break ; }

2) profile.php

Теперь в файле profile.php у нас должно быть что-то вроде этого:

// profile.php function profile ($chars ) { // We check if $chars is an Integer (ie. an ID) or a String (ie. a potential username) if (is_int ($chars )) { $id = $chars ; // Do the SQL to get the $user from his ID // ........ } else { $username = mysqli_real_escape_string ($char ); // Do the SQL to get the $user from his username // ........... } // Render your view with the $user variable // ......... } function myProfile () { // Get the currently logged-in user ID from the session: $id = .... // Run the above function: profile ($id ); }

Заключить

Хотел бы я, чтобы я был достаточно ясен. Я знаю, что этот код не очень хорош, а не в стиле ООП, но он может дать некоторые идеи...

Профилирование PHP-кода

Рано или поздно каждый из нас сталкивается с унаследованным кодом и его оптимизацией. Дебаггер и профилировшик в такой ситуации - лучшие помощники программиста. У тех кто работает с PHP, благодаря Дерику Ретансу (Derick Rethans) есть хороший инструмент - xDebug. Информации касательно xDebug много даже в рунете, поэтому речь в этой статье пойдет не о нем.

Наткнувшись на упоминание о профилировщике для PHP я сразу подумал об xDebug (о проприетарных инструментах от Zend я давно уже успел позабыть), но на этот раз ошибся - речь пойдет об XHProf.
XHProf

Этот профилировшик был разработан специально для Facebook, а исходный код его был открыт в марте 2009 года.

Установка прошла достаточно быстро и гладко.
wget pecl.php.net/get/xhprof-0.9.2.tgz
tar xvf xhprof-0.9.2.tgz
cd xhprof-0.9.2/extension/
phpize
./configure && make && make install
cd /usr/local/etc/php.d/
vim xhprof.ini
cd /usr/local/
vim header.php
vim footer.php
vim etc/php.ini
/etc/init.d/php-fpm restart
cp vhost.conf.template prof.my.conf
sed -i s/site/prof/ prof.my.conf
vim prof.my.conf
/etc/init.d/nginx restart

Разберем упомянутые конфиги

Xhprof.ini
extension=/usr/local/lib/php/extensions/no-debug-non-zts-20090626/xhprof.so
xhprof.output_dir="/home/max/www/profile/"

Prof.my.conf - конфиг нгинкса - самый стандартный.

Server {
listen 80;
server_name prof.my;
charset utf8;

Root /usr/local/src/xhprof-0.9.2/xhprof_html ;
location / {
index index.php;
}

Location ~ \.php$ {
fastcgi_pass 127.0.0.1:12000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/src/xhprof-0.9.2/xhprof_html/$fastcgi_script_name;
include fastcgi_params;

В /usr/local/src/xhprof-0.9.2/xhprof_html лежат PHP-исходники, создающие неплохой WEBGUI к профайлеру.

Итак о двух главных файлах:

Header.php


include_once "/usr/local/src/xhprof-0.9.2/xhprof_lib/utils/xhprof_lib.php";
include_once "/usr/local/src/xhprof-0.9.2/xhprof_lib/utils/xhprof_runs.php";
xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);
}
}

Footer.php
if(isset($_COOKIE["xhprof"])){
if (extension_loaded("xhprof")) {
$profiler_namespace = "myapp"; // namespace for your application
$xhprof_data = xhprof_disable();
$xhprof_runs = new XHProfRuns_Default();
$run_id = $xhprof_runs->save_run($xhprof_data, $profiler_namespace);

// url to the XHProf UI libraries (change the host name and path)
$profiler_url = sprintf("http://prof.my/index.php?run=%s&source=%s", $run_id, $profiler_namespace);
echo << Profiler output
OUT;
}
}

Теперь запускаем любой PHP-скрипт через веб и видим в левом верхнем углу ссылку на вывод профилировщика - именно для этого и был создан хост prof.my

Обратите внимание - я использую проверку на COOKIE! При такой проверке можно безопасно использовать профилировщик на production-сервере - на реальных данных и реальной загрузке.

Веб-интерфейс профилировщика выводит таблички с информацией о каждой функции и сообщает следующую информацию:

  • Число вызовов каждой функции
  • Wall-time, время затраченное на выполнение функций (включая ожидание ответов от сокетов, файловой системы и т.д.).
  • CPU-time, время затраченное на выполнение функций (исключая ожидание ответов от сокетов, файловой системы и т.д.).
  • Использование памяти
  • Пиковое использование памяти

Есть возможность сортировки таблицы по любому из параметров

Информация по каждой функции делится еще на два вида Inclusive и Exclusive. Inclusive включает цифры использованные дочерними вызовами, а Exclusive не включает их. Так же есть возможность, кликнув на название функции увидеть информацию только по ней и функциям из которых она вызывалась и которые вызывались ей.

Если в системе установлен GraphViz, профилировщик нарисует вам граф вызовов.

P.S. Не нарушая традиций: это мой первый пост на хабре.

UPD: перепостил в PHP.

“Недавно я проходила через искушения чрезмерного материализма, когда мне стало казаться, что это все бред, что тонкого мира не существует, что это все мне показалось и это все можно объяснить. Какой-то страх и тревога на меня навалилась…”
Из комментариев к статьям

Бывает ли так, что на духовном пути вы сталкиваетесь с сомнениями ? Вы вдруг перестаете верить в голос души и спрашиваете себя:

Может нет никаких духовных наставников, а голос Высшего Я — это плод воображения?
Действительно ли существует мир ангелов, другие измерения?

В этой статье вы не найдете научных подтверждений существования тонкого плана.

Цикл трансляций на Ключах Мастерства

Космические Законы

Получите видео записи 21 часовой трансляции с подробнейшим разбором каждого из Космических Законов

Нажимая кнопку «Получить доступ», вы даете согласие на обработку ваших персональных данных и соглашаетесь с

Но я постараюсь объяснить, откуда берутся эти сомнения и как их устранить .

Причины сомнений на пути духовного развития

Я выделила 3 причины сомнений, с которыми сама сталкивалась на протяжении духовного роста.

1. Недостаток знаний о духовном устройстве мира

Тонкий мир, другие измерения нельзя пощупать, проверить, существуют ли они на самом деле.

С точностью в 100 % никто не скажет, есть ли что-то по ту сторону завесы.

Не так много людей обладают ясновидением, чтобы самим убедиться в существовании ангелов и других духовных сущностей.

Поэтому каждый для себя выбирает ту систему знаний и верований, которая резонирует его душе , и живет в соответствии с этими принципами.

На духовном пути периодически одолевают сомнения : Так ли на самом деле то, во что я верю?

Но чем глубже вы познаете себя, свою душу, тем реже возникают такие мысли.

Чтобы преодолеть сомнения и найти ответы на многие волнующие вас вопросы в теме духовности, предлагаю почитать “Космогоническую концепцию Розенкрейцеров” Макса Генделя, “Божественную матрицу” Грегга Брейдена, “Биологию Веры” Брюса Липтона.

Первые две книги — не научные труды, но если вам нужны объяснения мироустройства с точки зрения духовности, вы их там найдете.

Больше книг на тему духовного строения мира и человека вы найдете в статье .

2. Переход на новый вибрационный уровень

Еще одна причина сомневаться, работают ли духовные практики — пропадает яркость ощущений в медитациях.

Раньше в медитации и после нее вы ощущали подъем, прилив энергии, радость, а теперь эти ощущения словно стерты.

Возникает чувство, что практика не работает. Это не так. Дело в том, что ваши вибрации поднялись до того уровня, к которому вы стремились.

Раньше вы с ними сонастраивались с помощью практик, а теперь эти вибрации — норма для вас.

Если хотите испытать те ощущения, что и раньше, попробуйте более серьезные духовные практики продвинутого уровня.

Главное, не впадайте в зависимость от медитаций . Всегда помните, ради чего вы этим занимаетесь, какой цели хотите достичь.

3. Выпадение в матрицу

Каждый человек переживает моменты подъема и спада. Период подъема знаменуется легкостью, воодушевлением, верой в лучшее.

Когда вы в ресурсном состоянии, вы действительно ощущаете поддержку с той стороны , замечаете знаки, получаете информацию и помощь.

А когда проваливаетесь, все вокруг кажется серым, унылым.

То, что радовало в возвышенном состоянии, теперь раздражает, пропадает вера в высшие силы.

В момент провала вы отрезаны от Высшего Я, перекрыта связь с духами-наставниками. Вы остаетесь один на один с эго и его страхами.

Узнайте, что поможет переключиться и вернуться в себя.

Ваши эмоции вибрируют на низких частотах. Неудивительно, что появляются сомнения в себе и в истине, в которую вы верите.

Эго “смеется” над вашими начинаниями в сфере духовного развития. Оно доверяет только проверенной информации и прошлому опыту.

В этот момент спросите себя:

Что делает меня счастливым — эта безнадежность или вера в то, что я един со всем и поддержан высшими силами , стоит только руку протянуть?

Поставьте на одну чашу весов убеждение, что ничего нет, кроме материального, а на другую — связь с высшими аспектами, помощь, которую вы получаете от них .

Сравните свои ощущения на каждой из чаш весов. Что вы выберете?

Неважно существует ли то, во что вы верите, важно поддерживает ли вас эта вера или делает несчастным.

На самом деле не имеет значения, кто вам помогает: незримые помощники или ваша вера в себя.

Можно как угодно это называть, главное, что вы чувствуете при этом.

Как преодолеть сомнения, если вы провалились

“Когда вы допускаете какое-либо сомнение, в сердце возникает напряжение - потому что в доверии сердце расслабляется, а в сомнении сжимается.
Чем более вы в голове, тем более сердце сжимается. Когда вы не в голове, сердце раскрывается, как цветок лотоса. Тогда вы по-настоящему живы, и сердце расслаблено.
Когда вас ловит сомнение - вас ловит ум. Сомнение может быть абсолютно правильным, но, даже будучи правильным, оно неправильно, потому что разрушает сердце.”
Ошо

Читайте личный дневник успеха.

Если вы его еще не завели, то обязательно это сделайте и записывайте каждый день минимум 3 победы, любые, не только крупные.

Как раз из маленьких шагов складывается целый путь.

Сделайте так, чтобы успехи, которых вы достигли с помощью духовных знаний и практик, всегда были на видном месте.

Если это что-то неосязаемое, например, умение выстраивать личные границы, назначьте какой-нибудь материальный объект, который будет олицетворять ваш результат.

  • Разрисуйте морскую гальку и собирайте в вазочку такие разноцветные камушки.

Каждый камушек — отвечает за одно конкретное достижение или результат при помощи высших сил. Чем больше прорыв, тем больше по размеру камушек.

  • Если вы обладаете талантом создавать что-то материальное: картины, украшения, игрушки, посвящайте каждое свое произведение какому-нибудь вашему достижению.
  • Когда вы начинаете работать по улучшению отдельной сферы жизни, посадите в горшок семя небольшого растения.

Его рост будет олицетворять ваш духовный рост и сдвиги в определенной области.

Если работа предстоит большая, посадите кустарник или даже саженец дерева. Ухаживайте за ним.

Когда вас будут мучить сомнения, есть ли результаты от ваших действий, практик, помогают ли вам высшие силы, ваше деревце или растение будет напоминать, что вы не зря проделали такой путь, и возвращать веру в себя.

Поможет вернуть утраченное чувство единства с вашей духовной сутью и целостности.

Как хочется все знать наверняка, если дело касается того, что нельзя потрогать, увидеть воочию.

Так уж устроен человеческий ум, ему нужны доказательства.

Но наша с вами цель в духовных практиках — перейти от ума к сердцу , чтоб обрести счастье и гармонию в жизни.

Вот и используйте ваше сердце как резонатор истины и оставайтесь верны тому, что вас поддерживает и наполняет.

The profile data loop is the most complex out of all the custom BuddyPress loops. It’s actually two loops in one, the first is to loop through profile field groups, and the second to loop through profile fields in that profile field group.

Standard Loop

This user does not have a profile.

Accepted Parameters

The bp_group_has_profile() function will accept a number of parameters that will manipulate the data being returned.

  • profile_group_id optional

    By default all groups and all fields will be displayed. If you provide the ID of a profile field group, then only the fields in this group will be displayed.

    • Default value: false
  • user_id optional

    The ID of the user you want to fetch the profile data for. This is required if you are outside a member profile URL (/members/andy/…), otherwise it is the ID of the displayed user.

    • Default value: bp_displayed_user_id()
  • member_type optional

    Limit fields by those restricted to a given member type, or array of member types. If $user_id is provided, the value of $member_type will be overridden by the member types of the provided user. The special value of ‘any’ will return only those fields that are unrestricted by member type – i.e., those applicable to any type.

    • Default value: false
  • hide_empty_groups optional

    By default empty groups will not be displayed. If you provide the 0 value, then all the groups will be displayed.

    • Default value: true
  • hide_empty_fields optional

    By default, only show empty fields if we’re on the Dashboard, or we’re on a user’s profile edit page, or this is a registration page. If you provide the 0 value, then all the fields will be displayed on your page.

    • Default value: !is_network_admin() && !is_admin() && !bp_is_user_profile_edit() && !bp_is_register_page()
  • fetch_fields optional

    Whether to fetch each group’s fields.

    • Default value: false
  • fetch_fields_data optional

    Whether to fetch data for each field. Requires a $user_id .

    • Default value: false
  • exclude_groups optional

    Comma-separated list or array of group IDs to exclude.

    • Default value: array()
  • exclude_fields optional

    Comma-separated list or array of field IDs to exclude.

    • Default value: array()
  • update_meta_cache optional

    Whether to pre-fetch xprofilemeta for all retrieved groups, fields, and data.

    • Default value: true

Advanced Usage

Fetch all the profile data for the user with ID 10 .

Fetch the profile data for fields in the profile group ID 2 for the user with ID 10 .

Fetch the profile data for fields in the profile group ID 2 .

Fetch all the profile data, even empty fieds and groups, for current user.

Fetch all the profile data for the user with ID 10 , excluding fields with ID 5, 6, 7 .