• Перевод

Bash-алиасы («псевдонимы») - это ярлыки к файлам, позволяющие ссылаться на другую команду через более запоминающиеся слова, сокращения или символы. Например, если вы используете Git, вы можете запускать git-статус много раз в течение дня, поэтому, чтобы сэкономить время и количество нажатий клавиш, вы можете присвоить ему алиас, который вызовет правильную команду.

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

Nah="git reset --hard;git clean -df"
Это реально продемонстрировать: представьте что начали работать над новой функцией и, возможно, добавили несколько новых файлов, а после обеда решили, что все сделали неверно. Запустив команду " nah ", вы вернете код к предыдущему состоянию, удалив все внесенные изменения. Это очень удобно и полезно!

Как создать собственные алиасы Для тех, кто не создает псевдонимы bash, процесс довольно прост. Вначале текстовым редактором откройте файл ~/.bashrc , находящийся в вашем домашнем каталоге. Затем раскомментируйте или добавьте следующие строки:

If [ -f ~/.bash_aliases ]; then . ~/.bash_aliases fi
Команда как бы говорит о необходимости загрузке файла ~/.bash_aliases , если он существует, поэтому вы можете помещать в него все свои алиасы (псевдонимы) и облегчать их совместное использование. Наконец, создайте файл ~/.bash_aliases и добавьте следующее в качестве своего первого псевдонима:

Alias art="php artisan"
Сохраните изменения и выполните в терминале команду:

Source ~/.bashrc
Теперь вы имеете возможность использовать алиас " art ".

Просто помните, что каждый раз после изменения файла ~/.bash_aliases вам необходимо запускать эту команду, либо перезапустить терминал для применения изменений.

Псевдонимы для Laravel от сообщества Ниже приведен список алиасов, использующихся сообществом Laravel:WaveHack # Laravel artisan() { if [ -f bin/artisan ]; then php bin/artisan "$@" else php artisan "$@" fi } alias serve="artisan serve" alias tinker="artisan tinker" # Misc PHP t() { if [ -f vendor/bin/phpunit ]; then vendor/bin/phpunit "$@" else phpunit "$@" fi } bmadigan nah="git reset --hard;git clean -df" vm="ssh [email protected] -p 2222" Tainmar pa="php artisan" Mohamed Said alias dracarys="git reset --hard && git clean -df" alias copyssh="pbcopy < $HOME/.ssh/id_rsa.pub" alias reloadcli="source $HOME/.zshrc" alias zshrc="/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl ~/.zshrc " alias shrug="echo "¯\_(ツ)_/¯" | pbcopy"; alias fight="echo "(ง"̀-"́)ง" | pbcopy"; *** This one opens a PR from the current branch function openpr() { br=`git branch | grep "*"` repo=$1 parentBranch=$2 open -a /Applications/Google\ Chrome.app https://github.com/${repo/* /}/compare/${parentBranch/* /}...themsaid:${br/* /}\?expand\=1 } Jeffrey Way alias gl="git log --graph --pretty=format:"%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)%Creset" --abbrev-commit" alias wip="git add . && git commit -m "wip"" alias nah="git reset --hard && git clean -df" alias p="phpunit" alias pf="phpunit --filter " alias art="php artisan" alias migrate="php artisan migrate" Bill Mitchell alias a="php artisan" alias pu="vendor/bin/phpunit" alias puf="vendor/bin/phpunit --filter " alias pug="vendor/bin/phpunit --group " alias cdo="composer dump-autoload -o" alias serve="php artisan serve" Jesús Amieiro alias pa="php artisan" alias par:l="php artisan route:list" alias pam="php artisan migrate" alias pam:r="php artisan migrate:refresh" alias pam:rs="php artisan migrate:refresh --seed" alias cu="composer update" alias ci="composer install" alias cda="composer dump-autoload -o" alias vu="cd ~/Homestead && vagrant up" alias vs="vagrant suspend" alias vssh="vagrant ssh" Piotr alias artisan = "php artisan" alias db-reset="php artisan migrate:reset && php artisan migrate --seed" freekmurze alias a="php artisan" paulredmond alias _="sudo" alias art="php artisan" alias tinker="php artisan tinker" alias ll="ls -lh" alias la="ls -lAh" alias c="composer" alias iphp="psysh" # repl alias g="git" alias gs="git status" alias d="docker" alias dc="docker-compose" alias dm="docker-machine" alias k="kubectl" alias publicip="dig +short myip.opendns.com @resolver1.opendns.com" alias chrome="/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome" # Show file and folder permissions as octal # Usage: `octal file.txt` or `octal my/path` alias octal="stat -f "%A %a %N"" # Mac conveniences for Linux alias pbcopy="xclip -selection clipboard" alias pbpaste="xclip -selection clipboard -o" if type "xdg-open" &> /dev/null; then alias open="xdg-open" fi TJ Miller nah: aliased to git reset --hard && git clean -fd aa: aliased to php artisan sebastiaanluca # Hub (extend git commands) alias git=hub # Directories alias ll="ls -FGlAhp" alias ..="cd ../" alias ...="cd ../../" alias ....="cd ../../../" alias .....="cd ../../../../" alias df="df -h" alias diskusage="df" alias fu="du -ch" alias folderusage="fu" alias tfu="du -sh" alias totalfolderusage="tfu" alias finder="open -a "Finder" ." # Vagrant alias vagrantgo="vagrant up && vagrant ssh" alias vgo="vagrantgo" alias vhalt="vagrant halt" alias vreload="vagrant reload && vgo" # PHP alias c="composer" alias cr="composer require" alias cda="composer dumpautoload" alias co="composer outdated --direct" alias update-global-composer="cd ~/.composer && composer update" alias composer-update-global="update-global-composer" alias a="php artisan" alias pa="php artisan" alias phpa="php artisan" alias art="php artisan" alias arti="php artisan" alias test="vendor/bin/phpunit" alias y="yarn" alias yr="yarn run" # Homestead alias edithomestead="open -a "Visual Studio Code" ~/Homestead/Homestead.yaml" alias homesteadedit="edithomestead" alias dev-homestead="cd ~/Homestead && vgo" alias homestead-update="cd ~/Homestead && vagrant box update && git pull origin master" alias update-homestead="homestead-update" # Various alias editaliases="open -a "Visual Studio Code" ~/.bash_aliases" alias showpublickey="cat ~/.ssh/id_ed25519.pub" alias ip="curl icanhazip.com" alias localip="ifconfig | grep -Eo "inet (addr:)?(*\.){3}*" | grep -Eo "(*\.){3}*" | grep -v "127.0.0.1"" alias copy="rsync -avv --stats --human-readable --itemize-changes --progress --partial" # Functions mkcdir () { mkdir -p -- "$1" && cd -P -- "$1" } function homestead() { (cd ~/Homestead && vagrant $*) } Alexander Melihov alias ars="php artisan serve" alias art="php artisan tinker" jordonbaade alias l="php artisan" Deleu alias unit="php vendor/phpunit/phpunit/phpunit" alias unitreport="php -d xdebug.profiler_enable=On vendor/phpunit/phpunit/phpunit --coverage-html=./public/report" alias laravel-installer="composer create-project --prefer-dist laravel/laravel" curieuxmurray alias artisan="php artisan" alias cclear="php artisan cache:clear" # now with 5.5 alias fresh="artisan migrate:fresh --seed" wilburpowery alias pf="phpunit --filter" alias artisan="php artisan" alias tinker="php artisan tinker" waunakeesoccer1 alias mfs="php artisan migrate:fresh --seed" От переводчика Сам же я пользуюсь следующими алиасами:

Alias art="php artisan" alias da="composer dumpauto" alias migrate="php artisan migrate"

Алиасы в Windows В операционной системе Windows псевдонимы задаются при помощи команды doskey . Например:
doskey art=php artisan $*

Но есть одно «НО»: при последующем открытии командной строки Windows она «забудет» их. Исправить эту проблему очень легко.

Для удобства переходим в папку с Вашей учетной записью %USERPROFILE% и создаем в нем файл dos_aliases.bat .

Внутри файла прописываем нужные нам команды, например:

Doskey art=php artisan $*

«Доллар со звездочкой» дают алиасу понимание того, что ему могут быть переданы какие-либо аргументы и/или параметры, например, art -V для вывода версии ядра движка.

Далее, в стартовом меню найдем командную строку (cmd.exe), щелкнем по ней правой кнопкой мыши и создадим ярлык, сохранив его на рабочий стол. Далее по этому ярлыку щелкаем правой кнопкой мыши, выбрав «Свойства» в выпадающем меню (по-английски «Properties» или «Eigenschaften» по-немецки), затем в поле «Цель» («Target» по-английски, или «Ziel» по-немецки в зависимости от используемой локализации ОС), где видим строку %windir%\system32\cmd.exe , дописываем /k %USERPROFILE%\dos_aliases.bat . Таким образом, мы заставляем подгружать наш файл при каждом запуске командной строки, открывая ее по этому ярлыку.

Полностью строка будет выглядеть так:
%windir%\system32\cmd.exe /k %USERPROFILE%\dos_aliases.bat

После этого сохраняемся и запускаем командную строку используя отредактированный нами ярлык. Вуаля!

OpenServer Для тех, кто использует консоль из состава OpenServer, дела обстоят еще проще: конфигурация консоли хранится в файле %ConEmuBaseDir%\CmdInit.cmd .

Конечно, если ввести в путь, то операционная система будет ругаться. Это потому, что она не знает о существовании этого пути - он используется внутри окружения OpenServer дабы не захламлять систему.

Итак, нужный нам файл мы найдем в папке с установленным OpenServer: \modules\conemu\ConEmu\CmdInit.bat .

Открываем его текстовым редактором и в нижней части файла дописываем нашу команду:

Doskey art=php artisan $*

Сохраняем и запускаем консоль. Profit!

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

Windows PowerShell Запускаем оболочку Windows PowerShell от имени администратора и проверяем права на запуск отдельных скриптов с расширением `ps1`, выполнив команду:

Get-ExecutionPolicy

По-умолчанию установлена политика `Restricted`, запрещающая выполнение любых скриптов. Мы заменим ее на `RemoteSigned`, разрешающую запускать все скрипты за исключением скачанных из сети:

Set-ExecutionPolicy RemoteSigned

New-Item -type file $PROFILE

В данном моменте возможно появление ошибки, так как в папке «Мои документы» не найдена директория "WindowsPowerShell " - создадим ее… да, вручную. После повторим команду.

Переходим в папку `%USERPROFILE%\Documents\WindowsPowerShell` и открываем файл `Microsoft.PowerShell_profile.ps1` текстовым редактором. В него мы и будем вписывать свои команды.

Во-первых, сразу прописал переход в нужный каталог:

Cd "f:\dev\domains\"

А ниже размещены такие алиасы, как:
art = php artisan migrate = php artisan migrate down = php artisan down up = php artisan up cclear = php artisan cache:clear da = composer dumpauto docup = docker-compose up -d nginx mysql redis beanstalkd docdown = docker-compose kill doc = docker-compose exec workspace bash

Для того чтобы в PowerShell задать команду с параметром, нужно использовать функцию, внутри которой и будут принимаемые аргументы передаваться дальше. Таким образом, алиас команды`art` в оболочке PowerShell принимает вид:

Function Call-Art { php artisan $args } New-Alias -Name art -Value Call-Art

И завершу статью полным списком своих алиасов в оболочке Windows PowerShell:

# Set Main Directory cd "f:\dev\domains\" # Artisan Commands. function Call-Art { php artisan $args } New-Alias -Name art -Value Call-Art # Run the database migrations. function Call-Art-Migrate { php artisan migrate } New-Alias -Name migrate -Value Call-Art-Migrate # Put the application into maintenance mode. function Call-Art-Down { php artisan down } New-Alias -Name down -Value Call-Art-Down # Bring the application out of maintenance mode. function Call-Art-Up { php artisan up } New-Alias -Name up -Value Call-Art-Up # Flush the application cache function Call-Art-Cache-Clear { php artisan cache:clear } New-Alias -Name cclear -Value Call-Art-Cache-Clear # Composer Dump-Autoload. function Call-Composer-Dump-Autoload { composer dumpauto } New-Alias -Name da -Value Call-Composer-Dump-Autoload # Start the Docker function Call-Start-Docker { docker-compose up -d nginx mysql redis beanstalkd } New-Alias -Name docup -Value Call-Start-Docker # Kill the Docker function Call-Kill-Docker { docker-compose kill } New-Alias -Name docdown -Value Call-Kill-Docker # Enter the Docker function Call-Enter-Docker { docker-compose exec workspace bash } New-Alias -Name doc -Value Call-Enter-Docker

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

(PHP 5 >= 5.3.0)

The ability to refer to an external fully qualified name with an alias, or importing, is an important feature of namespaces. This is similar to the ability of unix-based filesystems to create symbolic links to a file or to a directory.

PHP namespaces support three kinds of aliasing or importing: aliasing a class name, aliasing an interface name, and aliasing a namespace name. Note that importing a function or constant is not supported.

In PHP, aliasing is accomplished with the use operator. Here is an example showing all 3 kinds of importing:

Example #1 importing/aliasing with the use operator

Note that for namespaced names (fully qualified namespace names containing namespace separator, such as Foo\Bar as opposed to global names that do not, such as FooBar ), the leading backslash is unnecessary and not recommended, as import names must be fully qualified, and are not processed relative to the current namespace.

PHP additionally supports a convenience shortcut to place multiple use statements on the same line

Example #2 importing/aliasing with the use operator, multiple use statements combined

Importing is performed at compile-time, and so does not affect dynamic class, function or constant names.

Example #3 Importing and dynamic names

In addition, importing only affects unqualified and qualified names. Fully qualified names are absolute, and unaffected by imports.

Example #4 Importing and fully qualified names

Scoping rules for importing

The use keyword must be declared in the outermost scope of a file (the global scope) or inside namespace declarations. This is because the importing is done at compile time and not runtime, so it cannot be block scoped. The following example will show an illegal use of the use keyword:

Example #5 Illegal importing rule

Importing rules are per file basis, meaning included files will NOT inherit the parent file"s importing rules.

Обычно URL path(URL путь) и File path(Путь в файловой системе относительно виртуального сервера) идентичны. Например, www.example.com/images/foo.gif означает(обычно), что файл находится в /home/example/www/images/foo.gif.

Однако, это может быть изменено благодаря тому, что в Apache называется алиасами(ссылками, псевдонимами). То есть алиас позволяет сослаться в другое место, отличное от физического пути. Например, Обращаясь к /images как из прошлого примера, может быть пользователю отдано содержимое каталога /var/www/images.

Алиасы бывают глобальные или привязанные к конкретному виртуальному серверу.

Для создания алиаса проделайте следующие шаги:

1. На главной странице модуля, выберите виртуальный сервер для которого вы хотите создать алиас. Или, если это будет глобальный алиас выберите Default Server(Сервер по умолчанию).

3. Заполните пустую строку в таблице Document directory aliases(Таблица алиасов). В поле From(От) введите URL путь, и реальный путь в поле To(Куда). Если вы редактируете алиасы сервера по умолчанию, то там уже будет несколько стандартных алиасов.

Существующие алиасы могут быть отредактированы, стандартным для Webmin способом - просто измените его в таблице алиасов и нажмите Save(Сохранить). Если вам нужно удалить, то просто очистите оба поля таблицы соответствующего алиаса.

Алиасы могут быть определены с помощью Perl- регулярных выражений. Но в таком случае они должны быть внесены в таблицу Regexp document directory aliases(Regexp таблица алиасов). Смысл тот же, что и у обычной таблицы алиасов, с тем отличием, что в поле From(От) вы можете ввести что-нибудь вроде ^/images/(.*)\.gif$. А в поле To(Куда) что-нибудь вроде /images/$1.jpg. Этот алиас будет перенаправлять пользователя запросившего GIF картинку, на картинку JPG с тем же именем от GIF, что запросил пользователь.

Редиректы в чем-то очень похожи на алиасы, но служат другой цели. Когда пользователь запросил определенный URL, на который настроен редирект, Apache перенаправит клиента на другой URL или даже на другой сервер. Например, вы можете сделать так, чтобы при обращении к www.example.com/webmin/ пользователя перенаправляло на www.webmin.com . Однако в отличие от алиасов, запрос к /webmin/foo.gif не перенаправит пользователя на www.webmin.com/foo.gif , он все также откроет только www.webmin.com .

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

Для настройки редиректа проделайте следующие шаги:

1. На главной странице модуля, выберите виртуальный сервер для которого вы хотите создать редирект. Или, если это будет глобальный редирект выберите Default Server(Сервер по умолчанию).

2. На странице настроек виртуального сервера нажмите на иконку Aliases and Redirects(Алиасы и Редиректы).

3. Заполните пустую строку в таблице URL redirects(Таблица редиректов). В поле From(От) введите URL путь, например /webmin, и URL путь куда перенаправить клиента в поле поле To(Куда), например www.webmin.com. Поле Status(Код статуса) необязательный параметр. Он необходим если вы хотите изменить HTTP код статуса, который будет отдаваться веб-сервером вместо кода по умолчанию(302). Вы можете изменить его на 301 или 303, в зависимости от того, что вам нужно.

Чтобы добавить более одного редиректа вам нужно переоткрыть страницу.

Редиректы могут быть определены с помощью Perl- регулярных выражений. Но в таком случае они должны быть внесены в таблицу Regexp URL redirects(Regexp таблица редиректов). Смысл тот же, что и у обычной таблицы редиректов, с тем отличием, что в поле From(От) вы можете ввести что-нибудь вроде ^/webmin/(.*)$. А в поле To(Куда) что-нибудь вроде http://www.webmin.com/$1. Этот редирект будет перенаправлять пользователя запросившего страницу от /webmin на такую же страницу(с тем же именем) на сайте www.webmin.com.

Если Apache скомпилирован с поддержкой прокси модуля, то вы можете использовать его в качестве прокси-сервера. Это позволит вам организовать в сети как бы один большой веб-сайт в котором - целый Интернет. Ваши пользователи будут обращаться к вашему веб-серверу, а он будет перенаправлять запросы во внешний мир. Да, Apache как прокси-сервер не так гибок как Squid, но может вам и не нужна та гибкость.

Это будет в некотором смысле редирект, но без редиректа как такового. Поэтому существуют еще таблицы Map locale to remote URLs(Маппинг локальных URL к удаленным URL) и Map remote Location: headers to local(Обратный маппинг), которые также размещены на странице Aliases and Redirects(Алиасы и Редиректы).

Для настройки URL маппинга проделайте следующие шаги:

1. На главной странице модуля, выберите виртуальный сервер для которого вы хотите создать маппинг. Или, если это будет глобальный маппинг выберите Default Server(Сервер по умолчанию).

2. На странице настроек виртуального сервера нажмите на иконку Aliases and Redirects(Алиасы и Редиректы).

3. Заполните пустую строку в таблице Map locale to remote URLs(Маппинг локальных URL к удаленным URL). Введите URL путь на вашем веб-сервере(например, /webmin) в первое поле и полный URL куда перенаправлять запросы во второе поле(например, http://www.webmin.com).

4. Заполните пустую строку в таблице Map remote Location: headers to local(Обратный маппинг). Введите полный URL путь на удаленном веб-сервере(например, http://www.webmin.com) в первое поле и URL путь на вашем веб-сервере(например, /webmin) куда перенаправлять запросы во второе поле(например, http://www.webmin.com). Обратный маппинг должен быть обязательно настроен. Иначе ответы не будут доходит до клиентов.

При настройках маппинга, помните, что проксирование это не основная функция веб-сервера. Некоторые функции могут работать не так, как вы думаете, как вы привыкли.

Доброго времени суток друзья! Давай с Вами рассмотрим регистрацию пользователей на PHP. Для начала давайте определим условия для нашей регистрации пользователей:

  • Пароль шифруем при помощи алгоритма MD5
  • Пароль будем "солить"
  • Проверка на занятость Логина
  • Активация пользователя письмом.
  • Запись и хранение данных в СУБД MySQL

Для написание данного скрипта нам нужно понять, что такое регистрация пользователя. Регистрация пользователя - это получения данных реального пользователя, обработка и хранение данных.

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

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

Рассмотрим структуру каталогов скриптов для реализации нашей регистрации с авторизацией. Нам нужно разбить скрипты на логические составляющие. Модули регистрации и авторизации мы поместив в отдельный каталог. Так же в отдельные каталоги мы поместим подключение к базе данных MySQL , файл с пользовательскими функциями, файл стилей CSS и наш шаблон HTML . Данная структура позволяет быстро ориентироваться в скриптах. Представьте себе, что у Вас большой сайт с кучей модулями и т.д. и если не будет порядка, то будет очень сложно что-то отыскать в таком бардаке.

Так как мы будем хранить все данные в СУБД MySQL , то давайте создадим не большую таблицу в которой будем хранить данные о регистрации.

Для начала нужно создать таблицу в базе данных. Таблицу назовем bez_reg где bez - это префикс таблицы, а reg название таблицы.

Структура таблицы: bez_reg -- -- Структура таблицы `bez_reg` -- CREATE TABLE IF NOT EXISTS `bez_reg` (`id` int(11) NOT NULL AUTO_INCREMENT, `login` varchar(200) NOT NULL, `pass` varchar(32) NOT NULL, `salt` varchar(32) NOT NULL, `active_hex` varchar(32) NOT NULL, `status` int(1) NOT NULL, PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; Теперь создадим основные скрипты для дальнейшей работы. Файл INDEX.PHP

Файл CONFIG.PHP

less/reg/?mode=auth">Войти