: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in
<?php namespace la\core\db\migrations;
if ( ! defined( 'WPINC' ) ) die;
use la\core\db\LADBMigrationManager;
use la\core\db\LADDLUtils;
* @author Looks Awesome <email@looks-awesome.com>
* @link http://looks-awesome.com
* @copyright Looks Awesome
abstract class LADBMigrationBase implements ILADBMigration{
public function version() {
return LADBMigrationManager::INIT_MIGRATION;
public function execute($conn, $manager){
if (!LADDLUtils::existTable($conn, $manager->option_table_name)){
$this->create_options_table($conn, $manager->option_table_name);
if (!LADDLUtils::existTable($conn, $manager->streams_table_name)){
$this->create_streams_table($conn, $manager->streams_table_name);
if (!LADDLUtils::existTable($conn, $manager->cache_table_name)){
$this->create_cache_table($conn, $manager->cache_table_name);
if (!LADDLUtils::existTable($conn, $manager->posts_table_name)){
$this->create_posts_table($conn, $manager->posts_table_name);
if (!LADDLUtils::existTable($conn, $manager->post_media_table_name)){
$this->create_post_media_table($conn, $manager->post_media_table_name);
if (!LADDLUtils::existTable($conn, $manager->streams_sources_table_name)){
$this->create_streams2sources_table($conn, $manager->streams_sources_table_name);
if (!LADDLUtils::existTable($conn, $manager->image_cache_table_name)){
$this->create_image_size_table($conn, $manager->image_cache_table_name);
if (!LADDLUtils::existTable($conn, $manager->snapshot_table_name)){
$this->create_snapshot_table($conn, $manager->snapshot_table_name);
if (!LADDLUtils::existTable($conn, $manager->comments_table_name)){
$this->create_comments_table($conn, $manager->comments_table_name);
protected function create_options_table ($conn, $table_name){
`id` VARCHAR(50) NOT NULL,
$conn->query($sql, $table_name, $this->charset());
protected function create_streams_table ($conn, $table_name){
$conn->query($sql, $table_name, $this->charset());
protected function create_cache_table ($conn, $table_name) {
`feed_id` VARCHAR(20) NOT NULL,
`last_update` INT NOT NULL,
`status` INT NOT NULL DEFAULT 0,
`enabled` TINYINT(1) DEFAULT 0,
`system_enabled` TINYINT(1) DEFAULT 1,
`changed_time` INT DEFAULT 0,
`cache_lifetime` INT DEFAULT 60,
`boosted` VARCHAR(4) DEFAULT 'nope',
`send_email` INT DEFAULT 0 NOT NULL,
$conn->query($sql, $table_name, $this->charset());
protected function create_streams2sources_table($conn, $table_name){
`feed_id` VARCHAR(20) NOT NULL,
`stream_id` INT NOT NULL,
PRIMARY KEY (`feed_id`, `stream_id`)
$conn->query($sql, $table_name, $this->charset());
protected function create_posts_table($conn, $table_name){
$charset = $this->charset();
$collate = $this->collate();
`feed_id` VARCHAR(20) NOT NULL,
`post_id` VARCHAR(50) NOT NULL,
`post_type` VARCHAR(10) NOT NULL,
`post_permalink` VARCHAR(300),
`post_header` VARCHAR(200){$collate},
`user_nickname` VARCHAR(100){$collate},
`user_screenname` VARCHAR(200){$collate},
`user_pic` VARCHAR(700) NOT NULL,
`user_link` VARCHAR(300),
`creation_index` INT NOT NULL DEFAULT 0,
`media_type` VARCHAR(100),
`post_status` VARCHAR(15),
`post_source` VARCHAR(300),
`post_additional` VARCHAR(300),
`user_counts_follows` INT,
`user_counts_followed_by` INT,
`post_content` BLOB DEFAULT NULL,
PRIMARY KEY (`post_id`, `post_type`, `feed_id`)
$conn->query($sql, $table_name, $charset);
protected function create_post_media_table($conn, $table_name){
$charset = $this->charset();
`id` INT NOT NULL AUTO_INCREMENT,
`feed_id` VARCHAR(20) NOT NULL,
`post_id` VARCHAR(50) NOT NULL,
`post_type` VARCHAR(10) NOT NULL,
`media_type` VARCHAR(100),
$conn->query($sql, $table_name, $charset);
protected function create_image_size_table($conn, $table_name) {
$sql = "CREATE TABLE ?n (
`url` VARCHAR(50) NOT NULL,
`creation_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
`original_url` VARCHAR(300),
$conn->query($sql, $table_name, $this->charset());
protected function create_snapshot_table($conn, $table_name){
$sql = "CREATE TABLE ?n (
`id` INT NOT NULL AUTO_INCREMENT,
`description` VARCHAR(20),
`creation_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
`settings` LONGTEXT NOT NULL,
`version` VARCHAR(10) DEFAULT '2.0' NOT NULL,
$conn->query($sql, $table_name, $this->charset());
protected function create_comments_table ($conn, $table_name){
`id` VARCHAR(50) NOT NULL,
`post_id` VARCHAR(50) NOT NULL,
$conn->query($sql, $table_name, $this->charset());
protected function charset(){
$charset = LADDLUtils::charset();
if ( !empty( $charset ) ) {
$charset = " CHARACTER SET {$charset}";
protected function collate(){
$collate = LADDLUtils::collate();
if ( !empty( $collate ) ) {
$charset_collate = " COLLATE {$collate}";