Стать программистом!

Стать программистом!

PHP + Mysql + Docker + Facebook Login скачать сайт без регистрации и СМС

Для «игрового» проекта выращивания стажеров мною был создан репозиторий открытый кода, очень простой и очень наглядный пример как мы будем наворачивать функциональность от «базовый базовый» яваскрипт и php, до чуть более чем продвинутой версии. На данный момент — номер коммита «для статьи» — Вы можете скачать, запустить (по инструкции в корне проекта) и получить готовый работающий минисайтик с логином пользователя через Facebook и сохранением его данных в базу. Прелесть контейнеров — что можно не только собирать (как первый для примера собирается, но и запускать чужие без сборки).

Продолжить чтение…


Стать программистом!

Docker: Первый проект

Как оказалось — о магии Докера еще не все написано и моих стажеров она ставит в тупик — поэтому пример маленький, но хороший будет тут сейчас. (с) И немного мастера Йоды в смеси с капитаном Очевидность. Чтобы избежать фразы «ну ты же много раз уже это делаешь» — будет использован джанго и питон, а не мой любимый пых. (о любви к пыху я могу долго дискутировать, самое важное — не инструмент, а прямые руки). Итак: как запустить свой первый проект в докере?

Продолжить чтение…


Стать программистом!

Angular2 и вызов функции объекта внутри цикла в шаблоне

Сама задача несложная — раз у нас красивые структуры = объекты = наши экземпляры данных, то почему бы нам не использовать это и не заменять сложные шаблоны в выводе функциями объекта (кратко забегая наперед скажу — лучше декораторы!, но у меня получилось)

export class Record {
	id:string;
	author:string;
	date:string;
	title:string;
	text:string;
	toTestAgain() {
		return '13444';
	}
}
export class SecondResponse {
	data:Record[];
	total:number;
	code:number;
	toTest() {
		return '134';
	}
}

Продолжить чтение…


Стать программистом!

Angular2 релиз и обновление примера к текущей версии

В связи с выходом стабильной версии обновим наш пример (Репозиторий примера BlogDemo) и вылечим мелкие ошибочки

Ошибка bootstrap

main.js до обновления

import {bootstrap}    from '@angular/platform-browser-dynamic';
 
import {AppComponent} from './app.component';
import {SecondComponent} from './second/second.component';
 
bootstrap(AppComponent);
bootstrap(SecondComponent);

main.js после обновления

import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
 
import {AppModule} from './app.module';
import {SecondModule} from './second/second.module';
 
platformBrowserDynamic().bootstrapModule(AppModule);
platformBrowserDynamic().bootstrapModule(SecondModule);

Внедрение HttpModule вместо HTTP_PROVIDERS

После обновления также будет ошибка что не найден HTTP_PROVIDERS — его больше и нет) Вместо этого используйте импорт HttpModule

app.module

import {NgModule} from '@angular/core';
import {HttpModule} from '@angular/http';
import {BrowserModule} from '@angular/platform-browser';
import {AppComponent} from './app.component';
 
@NgModule({
	imports: [HttpModule, BrowserModule],
	declarations: [AppComponent],
	bootstrap: [AppComponent]
})
export class AppModule {}

Следующий импорт больше не нужен, как и провайдер, так что смело убирайте

import {HTTP_PROVIDERS} from '@angular/http';
@Component({
	providers: [HTTP_PROVIDERS]
})

Стать программистом!

Angular2: наследование компонентов

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

Продолжить чтение…