Код, который работает для меня.
export class AuthenticationService {
user: Observable<firebase.User>;
constructor(public afAuth: AngularFireAuth) {
this.user = afAuth.authState;
}
login(){
var provider = new firebase.auth.GoogleAuthProvider();
provider.setCustomParameters({'hd': '<your domain>'});
this.afAuth.auth.signInWithPopup(provider)
.then(response => {
let token = response.credential.accessToken;
//Your code. Token is now available.
})
}
}
Это моя установка. Он отлично работал у меня для маленьких - очень больших проектов (включая социальную сеть).
Все эти папки будут находиться в моей основной папке приложения:
Очевидно, что все каталоги могут содержать подпапки, в которых будут организованы ваши файлы. Например, в папке css могут быть подпапки с именами «web» и «mobile». Папка «images» может содержать папку «user_uploaded», которая затем может содержать «профиль». И, конечно же, вы можете добавлять папки по своему усмотрению. В одном проекте у меня есть папка под названием «uploaders», которая просто содержит автономные сценарии загрузки.
Я также использую удобные методы, которые помогают создавать имена файлов того, что я хочу загрузить. Например, мой loadView () будет искать файл представления в текущем каталоге модуля, или, если вы передаете необязательный аргумент $ module, он будет искать именно в папке этого модуля.
Надеюсь, это поможет.
Я использую codeigniter для малых и больших проектов. Его функция MVC умеренно хороша.
Для файлов ядра, которые включены: Approot / inc /
Функции и классы доступа к данным находятся в: Approot / dao /
Для сценариев JavaScript: Approot / scripts /
Для CSS: Approot / styles /
Для изображений: Approot / img /
Для статического содержимого (обычно для изображений профиля пользователя или загруженных изображений): Approot / static /
Для кешей: Approot / caches /
Для шаблонов или файлов просмотра: Approot / templates /
Файл всех страниц: Approot /
Структура из Samstyle PHP Framework
Ответ, который я разместил здесь, был датирован 2009 годом. С годами было опубликовано больше стандартов, включая PSR-0 , который охватывает тему структуры папок . У меня также есть новая (и я считаю, что она лучше) структура папок с Packfire Framework .
По моему опыту, вы никогда не сможете это спланировать. Вы можете попробовать следовать тому, что делают фреймворки, но я обнаружил, что никогда не вписываюсь точно в их шаблон.
Я рекомендую просто придерживаться хорошего эмпирического правила для максимум 20 файлов в каталоге. Если вы обнаружите, что вам нужно больше, просто создайте несколько подкаталогов и переместите туда общие компоненты.
У вас должен быть один каталог в качестве корневого веб-каталога, в котором должны находиться только те файлы, которые вы хотите открыть для всего Интернета.
project/
web/
index.php
css/
js/
images/
config/
lib/
Вы можете добавить дополнительные подпапки в проект /, например, контроллер, модули, представление, помощник и т. Д. . Это зависит от вашего фреймворка.
РЕДАКТИРОВАТЬ:
Если вы используете композитор (что я рекомендую) и, возможно, npm с grunt и less, ваша файловая структура будет следующей:
project/
web/
js/
css/
images/
index.php
cli/
config/
config.php
node_modules/
src/
test/
vendor/
composer.json
composer.lock
packages.json
Добавьте другие папки и файлы, которые требуются для вашего проекта.
Для развертывания используйте эту структуру:
/sites/project/ (project is your projectname)
current (alias to current release folder releases/v1.1.0)
previous (optional alias to previous release folder releases/v1.0.1)
releases/
v1.0.0/ (git checkout of tag v1.0.0)
v1.0.1/ (git checkout of tag v1.0.1)
v1.1.0/ (git checkout of tag v1.1.0)
shared/ (has all your shared files and folders to be aliased in all releases - maybe something like GlusterFS)
Создайте сценарий развертывания. Примерно так:
Сначала сделайте резервную копию базы данных или скопируйте ее в новую базу данных, проверить репозиторий git в новую папку с тегом выпуска, получить все подмодули git, запустить composer install --no-dev, настроить любые псевдонимы для общих папок и файлов, таких как загруженные изображения и файлы конфигурации, сгенерировать js / css с grunt и менее или эквивалентными, укажите текущий псевдоним на новую папку с тегом, запустите скрипт обновления базы данных, перезапустите службы nginx / apache / fpm-php, запустите тесты, чтобы проверить, работает ли веб-сайт.
Имейте сценарий для возврата к предыдущей версии (или руководство, чтобы вы знали, что делать).
запустить тесты, чтобы проверить, работает ли сайт.Имейте сценарий для возврата к предыдущей версии (или руководство, чтобы вы знали, что делать).
запустить тесты, чтобы проверить, работает ли сайт.Имейте сценарий для возврата к предыдущей версии (или руководство, чтобы вы знали, что делать).